llvm-6502/include/llvm/Target
Dan Gohman 6520e20e4f Teach DAGCombine to fold constant offsets into GlobalAddress nodes,
and add a TargetLowering hook for it to use to determine when this
is legal (i.e. not in PIC mode, etc.)

This allows instruction selection to emit folded constant offsets
in more cases, such as the included testcase, eliminating the need
for explicit arithmetic instructions.

This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
that attempted to achieve the same effect, but wasn't as effective.

Also, fix handling of offsets in GlobalAddressSDNodes in several
places, including changing GlobalAddressSDNode's offset from
int to int64_t.

The Mips, Alpha, Sparc, and CellSPU targets appear to be
unaware of GlobalAddress offsets currently, so set the hook to
false on those targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57748 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-18 02:06:02 +00:00
..
DarwinTargetAsmInfo.h (re)Put const weak strings in appropriate section on Darwin. 2008-10-08 21:49:47 +00:00
ELFTargetAsmInfo.h Reapply 56585:56589 with proper fix for some gcc versions 2008-09-25 21:00:33 +00:00
SubtargetFeature.h Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings. 2008-02-20 11:08:44 +00:00
TargetAsmInfo.h Reapply 56585:56589 with proper fix for some gcc versions 2008-09-25 21:00:33 +00:00
TargetData.h Remove trailing spaces. 2008-08-07 09:00:46 +00:00
TargetELFWriterInfo.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
TargetFrameInfo.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
TargetInstrDesc.h Add RCBarriers to TargetInstrDesc. It's a list of register classes the given instruction can "clobber". For example, on x86 the call instruction can modify all of the XMM and fp stack registers. 2008-10-17 21:00:09 +00:00
TargetInstrInfo.h Const-ify several TargetInstrInfo methods. 2008-10-16 01:49:15 +00:00
TargetInstrItineraries.h A quick nm audit turned up several fixed tables and objects that were 2008-03-25 21:45:14 +00:00
TargetJITInfo.h Switch the PPC backend and target-independent JIT to use the libsystem 2008-06-25 17:18:44 +00:00
TargetLowering.h Teach DAGCombine to fold constant offsets into GlobalAddress nodes, 2008-10-18 02:06:02 +00:00
TargetMachine.h Refactor the code that adds standard LLVM codegen passes into 2008-09-25 00:37:07 +00:00
TargetMachineRegistry.h Revert 51775. 2008-05-30 22:47:19 +00:00
TargetMachOWriterInfo.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
TargetOptions.h Add an option to enable StrongPHIElimination, for ease of testing. 2008-10-07 20:22:28 +00:00
TargetRegisterInfo.h Trim #includes. 2008-10-16 20:18:31 +00:00
TargetSubtarget.h Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00