llvm-6502/lib/Target/XCore
Rafael Espindola 6880f0e19f Fix PR18743.
The IR
@foo = private constant i32 42

is valid, but before this patch we would produce an invalid MachO from it. It
was invalid because it would use an L label in a section where the liker needs
the labels in order to atomize it.

One way of fixing it would be to just reject this IR in the backend, but that
would not be very front end friendly.

What this patch does is use an 'l' prefix in sections that we know the linker
requires symbols for atomizing them. This allows frontends to just use
private and not worry about which sections they go to or how the linker handles
them.

One small issue with this strategy is that now a symbol name depends on the
section, which is not available before codegen. This is not a problem in
practice. The reason is that it only happens with private linkage, which will
be ignored by the non codegen users (llvm-nm and llvm-ar).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201608 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-18 22:24:57 +00:00
..
Disassembler [CMake] Let add_public_tablegen_target responsible to provide dependency to CommonTableGen. 2013-11-28 17:04:04 +00:00
InstPrinter [CMake] Let add_public_tablegen_target responsible to provide dependency to CommonTableGen. 2013-11-28 17:04:04 +00:00
MCTargetDesc Remove support for not using .loc directives. 2014-02-05 18:00:21 +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 Add instruction encodings and disassembly for 1r instructions. 2012-12-16 17:37:34 +00:00
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 XCore target: Handle common linkage 2014-02-18 11:21:59 +00:00
XCoreCallingConv.td
XCoreFrameLowering.cpp XCore target: addMemOperand as necessary 2014-02-18 11:21:53 +00:00
XCoreFrameLowering.h XCore target: Make handling of large frames not dependent upon an FP. 2013-12-02 11:05:28 +00:00
XCoreFrameToArgsOffsetElim.cpp Remove dead code. 2014-01-06 18:14:34 +00:00
XCoreInstrFormats.td [XCore] Add missing 2r instructions. 2013-02-17 22:38:05 +00:00
XCoreInstrInfo.cpp XCore target: addMemOperand as necessary 2014-02-18 11:21:53 +00:00
XCoreInstrInfo.h XCore target: Refactor the loading of constants into a register 2014-01-06 14:20:37 +00:00
XCoreInstrInfo.td XCore target: Lower EH_RETURN 2014-01-06 14:21:07 +00:00
XCoreISelDAGToDAG.cpp [XCore] Fix instruction selection for zext, mkmsk instructions. 2013-07-02 14:46:34 +00:00
XCoreISelLowering.cpp XCore target: fix const section handling 2014-02-11 10:36:26 +00:00
XCoreISelLowering.h XCore target: Lower ATOMIC_LOAD & ATOMIC_STORE 2014-02-11 10:36:18 +00:00
XCoreLowerThreadLocal.cpp Fix known typos 2014-01-24 17:20:08 +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 XCore target: Fix llvm.eh.return and EH info register handling 2014-02-18 11:21:48 +00:00
XCoreMCInstLower.cpp Move the llvm mangler to lib/IR. 2014-01-07 21:19:40 +00:00
XCoreMCInstLower.h Update comments to match recommended doxygen style. 2012-12-17 12:13:41 +00:00
XCoreRegisterInfo.cpp XCore target: addMemOperand as necessary 2014-02-18 11:21:53 +00:00
XCoreRegisterInfo.h XCore target: Make handling of large frames not dependent upon an FP. 2013-12-02 11:05:28 +00:00
XCoreRegisterInfo.td [XCore] The RRegs register class is a superset of GRRegs. 2013-04-04 19:57:46 +00:00
XCoreSelectionDAGInfo.cpp
XCoreSelectionDAGInfo.h
XCoreSubtarget.cpp
XCoreSubtarget.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
XCoreTargetMachine.cpp XCore target: Lower FRAME_TO_ARGS_OFFSET 2014-01-06 14:21:00 +00:00
XCoreTargetMachine.h Prevent LoopVectorizer and SLPVectorizer running if the target has no vector registers. 2013-09-18 12:43:35 +00:00
XCoreTargetObjectFile.cpp Fix PR18743. 2014-02-18 22:24:57 +00:00
XCoreTargetObjectFile.h XCore target: fix const section handling 2014-02-11 10:36:26 +00:00
XCoreTargetStreamer.h XCore: Fix typo in function name. 2014-01-27 11:50:13 +00:00
XCoreTargetTransformInfo.cpp Add final and owerride keywords to TargetTransformInfo's subclasses. 2014-01-24 18:22:59 +00:00

To-do
-----

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