1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/lib/CodeGen/SelectionDAG
Bill Wendling fcf3096d9b When inferring the pointer alignment, if the global doesn't have an initializer
and the alignment is 0 (i.e., it's defined globally in one file and declared in
another file) it could get an alignment which is larger than the ABI allows for
that type, resulting in aligned moves being used for unaligned loads.

For instance, in file A.c:

   struct S s;

In file B.c:
   struct {
     // something long
   };
   extern S s;

   void foo() {
     struct S p = s;
     // ...
   }

this copy is a 'memcpy' which is turned into a series of 'movaps' instructions
on X86. But this is wrong, because 'struct S' has alignment of 4, not 16.

llvm-svn: 140902
2011-09-30 23:19:55 +00:00
..
CMakeLists.txt Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
DAGCombiner.cpp Fix SimplifySelectCC to add newly created nodes to the DAGCombiner 2011-09-22 23:01:29 +00:00
FastISel.cpp Directly point debug info to the stack slot of the arugment, instead of trying to keep track of vreg in which it the arugment is copied. The LiveDebugVariable can keep track of variable's ranges. 2011-09-08 22:59:09 +00:00
FunctionLoweringInfo.cpp Directly point debug info to the stack slot of the arugment, instead of trying to keep track of vreg in which it the arugment is copied. The LiveDebugVariable can keep track of variable's ranges. 2011-09-08 22:59:09 +00:00
InstrEmitter.cpp Move getCommonSubClass() into TRI. 2011-09-30 22:18:51 +00:00
InstrEmitter.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
LegalizeDAG.cpp Revert r140463; The patch assumes that <4 x i1> is saved to memory as 4 x i8, 2011-09-27 10:48:29 +00:00
LegalizeFloatTypes.cpp Tweak the handling of MERGE_VALUES nodes: remove the need for 2011-09-23 13:59:22 +00:00
LegalizeIntegerTypes.cpp Cleanup PromoteIntOp_EXTRACT_VECTOR_ELT and PromoteIntRes_SETCC. 2011-09-27 11:16:47 +00:00
LegalizeTypes.cpp Tweak the handling of MERGE_VALUES nodes: remove the need for 2011-09-23 13:59:22 +00:00
LegalizeTypes.h Tweak the handling of MERGE_VALUES nodes: remove the need for 2011-09-23 13:59:22 +00:00
LegalizeTypesGeneric.cpp Tweak the handling of MERGE_VALUES nodes: remove the need for 2011-09-23 13:59:22 +00:00
LegalizeVectorOps.cpp white space cleanups 2011-09-18 10:29:29 +00:00
LegalizeVectorTypes.cpp Tweak the handling of MERGE_VALUES nodes: remove the need for 2011-09-23 13:59:22 +00:00
Makefile
ScheduleDAGFast.cpp - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
ScheduleDAGList.cpp Various bits of framework needed for precise machine-level selection 2010-12-24 05:03:26 +00:00
ScheduleDAGRRList.cpp PreRA scheduler should avoid cloning compares. 2011-09-01 00:54:31 +00:00
ScheduleDAGSDNodes.cpp Rename TargetSubtarget to TargetSubtargetInfo for consistency. 2011-07-01 21:01:15 +00:00
ScheduleDAGSDNodes.h The index stored in the RegDefIter is one after the current index. When getting the index, decrement it so that it points to the current element. Fixes an off-by-one bug encountered when trying to make use of MVT::untyped. 2011-06-27 18:34:12 +00:00
SDNodeDbgValue.h Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. 2011-02-18 22:43:42 +00:00
SDNodeOrdering.h
SelectionDAG.cpp When inferring the pointer alignment, if the global doesn't have an initializer 2011-09-30 23:19:55 +00:00
SelectionDAGBuilder.cpp Promote comment to doxycomment. Adjust whitespace. No functionality change. 2011-09-30 22:19:53 +00:00
SelectionDAGBuilder.h Basic x86 code generation for atomic load and store instructions. 2011-08-24 20:50:09 +00:00
SelectionDAGISel.cpp Lower ARM adds/subs to add/sub after adding optional CPSR operand. 2011-09-21 02:20:46 +00:00
SelectionDAGPrinter.cpp Pass the graph to the DOTGraphTraits.getEdgeAttributes(). 2011-02-27 04:11:03 +00:00
TargetLowering.cpp Add codegen support for vector select (in the IR this means a select 2011-09-06 19:07:46 +00:00
TargetSelectionDAGInfo.cpp