llvm-6502/lib/Target/XCore
Louis Gerbarg 7d54c5b0f2 Make sure no loads resulting from load->switch DAGCombine are marked invariant
Currently when DAGCombine converts loads feeding a switch into a switch of
addresses feeding a load the new load inherits the isInvariant flag of the left
side. This is incorrect since invariant loads can be reordered in cases where it
is illegal to reoarder normal loads.

This patch adds an isInvariant parameter to getExtLoad() and updates all call
sites to pass in the data if they have it or false if they don't. It also
changes the DAGCombine to use that data to make the right decision when
creating the new load.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214449 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-31 21:45:05 +00:00
..
Disassembler Prune dependency to MC from each target disassembler. 2014-07-24 11:45:11 +00:00
InstPrinter [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition 2014-04-29 07:57:00 +00:00
MCTargetDesc Remove the UseCFI option from createAsmStreamer. 2014-05-07 13:00:43 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
CMakeLists.txt XCore target: Lower FRAME_TO_ARGS_OFFSET 2014-01-06 14:21:00 +00:00
LLVMBuild.txt Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +00:00
Makefile
README.txt test commit 2013-07-29 09:23:13 +00:00
XCore.h XCore target: Lower FRAME_TO_ARGS_OFFSET 2014-01-06 14:21:00 +00:00
XCore.td Change the default of AsmWriterClassName and isMCAsmWriter. 2013-12-02 04:55:42 +00:00
XCoreAsmPrinter.cpp Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
XCoreCallingConv.td [XCore] Support functions returning more than 4 words. 2014-02-27 17:47:54 +00:00
XCoreFrameLowering.cpp XCore target: remove incorrect DebugLoc entries from prologue 2014-07-04 06:38:22 +00:00
XCoreFrameLowering.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition 2014-04-29 07:57:00 +00:00
XCoreFrameToArgsOffsetElim.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition 2014-04-29 07:57:00 +00:00
XCoreInstrFormats.td
XCoreInstrInfo.cpp XCore target: remove incorrect DebugLoc entries from prologue 2014-07-04 06:38:22 +00:00
XCoreInstrInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition 2014-04-29 07:57:00 +00:00
XCoreInstrInfo.td [XCore] Fix call of absolute address. 2014-03-04 16:50:30 +00:00
XCoreISelDAGToDAG.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition 2014-04-29 07:57:00 +00:00
XCoreISelLowering.cpp Make sure no loads resulting from load->switch DAGCombine are marked invariant 2014-07-31 21:45:05 +00:00
XCoreISelLowering.h Move the subtarget dependent features from XCoreTargetMachine 2014-07-02 00:10:09 +00:00
XCoreLowerThreadLocal.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition 2014-04-29 07:57:00 +00:00
XCoreMachineFunctionInfo.cpp XCore target: Fix llvm.eh.return and EH info register handling 2014-02-18 11:21:48 +00:00
XCoreMachineFunctionInfo.h Replace PROLOG_LABEL with a new CFI_INSTRUCTION. 2014-03-07 06:08:31 +00:00
XCoreMCInstLower.cpp Move the llvm mangler to lib/IR. 2014-01-07 21:19:40 +00:00
XCoreMCInstLower.h
XCoreRegisterInfo.cpp [cleanup] Lift using directives, DEBUG_TYPE definitions, and even some 2014-04-22 02:03:14 +00:00
XCoreRegisterInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition 2014-04-29 07:57:00 +00:00
XCoreRegisterInfo.td [XCore] The RRegs register class is a superset of GRRegs. 2013-04-04 19:57:46 +00:00
XCoreSelectionDAGInfo.cpp Make XCoreSelectionDAGInfo take a DataLayout since it only needs 2014-07-02 00:10:05 +00:00
XCoreSelectionDAGInfo.h Make XCoreSelectionDAGInfo take a DataLayout since it only needs 2014-07-02 00:10:05 +00:00
XCoreSubtarget.cpp Move the subtarget dependent features from XCoreTargetMachine 2014-07-02 00:10:09 +00:00
XCoreSubtarget.h Move the subtarget dependent features from XCoreTargetMachine 2014-07-02 00:10:09 +00:00
XCoreTargetMachine.cpp Move the subtarget dependent features from XCoreTargetMachine 2014-07-02 00:10:09 +00:00
XCoreTargetMachine.h Move the subtarget dependent features from XCoreTargetMachine 2014-07-02 00:10:09 +00:00
XCoreTargetObjectFile.cpp CodeGen: Stick constant pool entries in COMDAT sections for WinCOFF 2014-07-14 22:57:27 +00:00
XCoreTargetObjectFile.h CodeGen: Stick constant pool entries in COMDAT sections for WinCOFF 2014-07-14 22:57:27 +00:00
XCoreTargetStreamer.h XCore: Fix typo in function name. 2014-01-27 11:50:13 +00:00
XCoreTargetTransformInfo.cpp Fix typo. 2014-05-22 01:21:44 +00:00

To-do
-----

* Instruction encodings
* Tailcalls
* Investigate loop alignment
* Add builtins