Teach if-converter to be more careful with predicating instructions that would
take multiple cycles to decode.
For the current if-converter clients (actually only ARM), the instructions that
are predicated on false are not nops. They would still take machine cycles to
decode. Micro-coded instructions such as LDM / STM can potentially take multiple
cycles to decode. If-converter should take treat them as non-micro-coded
simple instructions.
llvm-svn: 113570
diff --git a/llvm/lib/Target/ARM/Thumb2HazardRecognizer.h b/llvm/lib/Target/ARM/Thumb2HazardRecognizer.h
index 4726658..aa4411f 100644
--- a/llvm/lib/Target/ARM/Thumb2HazardRecognizer.h
+++ b/llvm/lib/Target/ARM/Thumb2HazardRecognizer.h
@@ -26,7 +26,7 @@
MachineInstr *ITBlockMIs[4];
public:
- Thumb2HazardRecognizer(const InstrItineraryData &ItinData) :
+ Thumb2HazardRecognizer(const InstrItineraryData *ItinData) :
PostRAHazardRecognizer(ItinData) {}
virtual HazardType getHazardType(SUnit *SU);