The liveness-tracking code assumes that the registers that were saved in the function's prolog are live outside of the function. Specifically, that registers that were saved are also live-on-exit from the function. This isn't always the case as illustrated by the LR register on ARM. Differential Revision: https://reviews.llvm.org/D36160 llvm-svn: 310619 |
||
|---|---|---|
| .. | ||
| Disassembler | ||
| InstPrinter | ||
| MCTargetDesc | ||
| TargetInfo | ||
| CMakeLists.txt | ||
| LLVMBuild.txt | ||
| README.txt | ||
| XCore.h | ||
| XCore.td | ||
| XCoreAsmPrinter.cpp | ||
| XCoreCallingConv.td | ||
| XCoreFrameLowering.cpp | ||
| XCoreFrameLowering.h | ||
| XCoreFrameToArgsOffsetElim.cpp | ||
| XCoreISelDAGToDAG.cpp | ||
| XCoreISelLowering.cpp | ||
| XCoreISelLowering.h | ||
| XCoreInstrFormats.td | ||
| XCoreInstrInfo.cpp | ||
| XCoreInstrInfo.h | ||
| XCoreInstrInfo.td | ||
| XCoreLowerThreadLocal.cpp | ||
| XCoreMCInstLower.cpp | ||
| XCoreMCInstLower.h | ||
| XCoreMachineFunctionInfo.cpp | ||
| XCoreMachineFunctionInfo.h | ||
| XCoreRegisterInfo.cpp | ||
| XCoreRegisterInfo.h | ||
| XCoreRegisterInfo.td | ||
| XCoreSelectionDAGInfo.cpp | ||
| XCoreSelectionDAGInfo.h | ||
| XCoreSubtarget.cpp | ||
| XCoreSubtarget.h | ||
| XCoreTargetMachine.cpp | ||
| XCoreTargetMachine.h | ||
| XCoreTargetObjectFile.cpp | ||
| XCoreTargetObjectFile.h | ||
| XCoreTargetStreamer.h | ||
| XCoreTargetTransformInfo.h | ||
README.txt
To-do ----- * Instruction encodings * Tailcalls * Investigate loop alignment * Add builtins