1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 13:02:52 +02:00
llvm-mirror/include/llvm
Dan Gohman 15597f07b2 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.

llvm-svn: 57748
2008-10-18 02:06:02 +00:00
..
ADT Implement a SmallVector insert method that can insert multiple 2008-10-16 00:15:24 +00:00
Analysis Trim #includes. 2008-10-16 20:18:31 +00:00
Assembly we should use 'class' for non-pod types instead of 'struct' to 2008-08-24 18:38:56 +00:00
Bitcode Fix a calculation error in comments. 2008-10-16 01:21:44 +00:00
CodeGen Teach DAGCombine to fold constant offsets into GlobalAddress nodes, 2008-10-18 02:06:02 +00:00
CompilerDriver Build system tweaks to make it more convenient for the plugin authors. 2008-10-02 21:15:05 +00:00
Config Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
Debugger
ExecutionEngine On Darwin ARM, memory needs special handling to do JIT. This patch expands 2008-10-03 16:17:20 +00:00
Support Rename IRBuilder::IsNonNull -> IsNotNull in response to feedback. 2008-10-02 17:05:03 +00:00
System On Darwin ARM, memory needs special handling to do JIT. This patch expands 2008-10-03 16:17:20 +00:00
Target Teach DAGCombine to fold constant offsets into GlobalAddress nodes, 2008-10-18 02:06:02 +00:00
Transforms Remove the MarkModRef pass (use AddReadAttrs instead). 2008-09-19 08:23:44 +00:00
AbstractTypeUser.h
Argument.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
Attributes.h Fix whitespace in a comment. 2008-10-15 22:55:03 +00:00
AutoUpgrade.h Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
BasicBlock.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
CallGraphSCCPass.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
CallingConv.h Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
Constant.h fix typo's 2008-10-13 10:28:12 +00:00
Constants.h A file missed from previous checkin. 2008-10-09 23:01:07 +00:00
DerivedTypes.h
Function.h Fix disagreement about where the attributes are 2008-10-07 22:33:44 +00:00
GlobalAlias.h Make safer variant of alias resolution routine to be default 2008-09-09 20:05:04 +00:00
GlobalValue.h Rename isWeakForLinker to mayBeOverridden. Use it 2008-09-29 11:25:42 +00:00
GlobalVariable.h Add GlobalValue::{removeFromParent,eraseFromParent} 2008-08-29 07:30:15 +00:00
InlineAsm.h Keep track of *which* input constraint matches an output 2008-10-17 16:47:46 +00:00
InstrTypes.h Use the opcode predicates, instead of duplicating the code. 2008-10-17 21:42:45 +00:00
Instruction.def Cosmetic. 2008-10-06 20:33:02 +00:00
Instruction.h Correct the name of isTrapping in comments. 2008-10-15 22:56:21 +00:00
Instructions.h Now Attributes are divided in three groups 2008-09-26 22:53:05 +00:00
IntrinsicInst.h Split the SelectionDAG-building code, including the FunctionLoweringInfo 2008-09-03 16:12:24 +00:00
Intrinsics.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
Intrinsics.td Fixed definition of llvm_anyptr_ty 2008-10-10 01:41:18 +00:00
IntrinsicsAlpha.td Note that ADDC and company don't actually expand yet (missing in legalize 2008-10-07 02:10:26 +00:00
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td Implement __sync_synchronize on ppc32. Patch by Gary Benson. 2008-08-22 17:20:54 +00:00
IntrinsicsX86.td Removed pinsrd and pinsrq intrinsics because the code generator does not support 2008-10-15 06:27:16 +00:00
LinkAllPasses.h Add EscapeAnalysis. 2008-10-12 06:49:21 +00:00
LinkAllVMCore.h
Linker.h
Module.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
ModuleProvider.h
OperandTraits.h
Pass.h
PassAnalysisSupport.h Speed up the passmgr by avoiding heap thrashing on vectors. 2008-08-08 05:33:04 +00:00
PassManager.h
PassManagers.h Trim #includes. 2008-10-16 20:18:31 +00:00
PassSupport.h
SymbolTableListTraits.h Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
Type.h add a new form of Type::dump that takes a module for type names, 2008-10-01 20:16:19 +00:00
TypeSymbolTable.h
Use.h Add comment on how tagged pointers are 2008-10-17 08:31:36 +00:00
User.h
Value.h remove a deprecated internal interface 2008-10-13 10:25:27 +00:00
ValueSymbolTable.h