- Nov 27, 2007
-
-
Owen Anderson authored
Make LoopInfoBase more generic, in preparation for having MachineLoopInfo. This involves a small interface change. llvm-svn: 44348
-
Owen Anderson authored
llvm-svn: 44347
-
Chuck Rose III authored
llvm-svn: 44346
-
Dan Gohman authored
llvm-svn: 44345
-
Dan Gohman authored
Change 2>&1 | to |&. llvm-svn: 44344
-
Dan Gohman authored
Change grep '' to grep {}. llvm-svn: 44343
-
Dan Gohman authored
llvm-svn: 44342
-
Dan Gohman authored
optimized. This avoids creating illegal divisions when the combiner is running after legalize; this fixes PR1815. Also, it produces better code in the included testcase by avoiding the subtract and multiply when the division isn't optimized. llvm-svn: 44341
-
Chuck Rose III authored
Add TGParser files to VStudio project files. Removed generated files section from TableGen project file as it is no longer needed. #Include <algorithm> directly from TGParser.cpp so it can see std::reverse. llvm-svn: 44340
-
- Nov 26, 2007
-
-
Owen Anderson authored
llvm-svn: 44325
-
Owen Anderson authored
llvm-svn: 44324
-
Owen Anderson authored
llvm-svn: 44323
-
Anton Korobeynikov authored
llvm-svn: 44320
-
- Nov 25, 2007
-
-
Nick Lewycky authored
llvm-svn: 44319
-
Chris Lattner authored
llvm-svn: 44318
-
Anton Korobeynikov authored
llvm-svn: 44317
-
Duncan Sands authored
trivial difference in function attributes, allow calls to it to be converted to direct calls. Based on a patch by Török Edwin. While there, move the various lists of mutually incompatible parameters etc out of the verifier and into ParameterAttributes.h. llvm-svn: 44315
-
Chris Lattner authored
sometimes emit "zero" and "all one" vectors multiple times, for example: _test2: pcmpeqd %mm0, %mm0 movq %mm0, _M1 pcmpeqd %mm0, %mm0 movq %mm0, _M2 ret instead of: _test2: pcmpeqd %mm0, %mm0 movq %mm0, _M1 movq %mm0, _M2 ret This patch fixes this by always arranging for zero/one vectors to be defined as v4i32 or v2i32 (SSE/MMX) instead of letting them be any random type. This ensures they get trivially CSE'd on the dag. This fix is also important for LegalizeDAGTypes, as it gets unhappy when the x86 backend wants BUILD_VECTOR(i64 0) to be legal even when 'i64' isn't legal. This patch makes the following changes: 1) X86TargetLowering::LowerBUILD_VECTOR now lowers 0/1 vectors into their canonical types. 2) The now-dead patterns are removed from the SSE/MMX .td files. 3) All the patterns in the .td file that referred to immAllOnesV or immAllZerosV in the wrong form now use *_bc to match them with a bitcast wrapped around them. 4) X86DAGToDAGISel::SelectScalarSSELoad is generalized to handle bitcast'd zero vectors, which simplifies the code actually. 5) getShuffleVectorZeroOrUndef is updated to generate a shuffle that is legal, instead of generating one that is illegal and expecting a later legalize pass to clean it up. 6) isZeroShuffle is generalized to handle bitcast of zeros. 7) several other minor tweaks. This patch is definite goodness, but has the potential to cause random code quality regressions. Please be on the lookout for these and let me know if they happen. llvm-svn: 44310
-
- Nov 24, 2007
-
-
Chris Lattner authored
llvm-svn: 44304
-
Chris Lattner authored
llvm-svn: 44303
-
Chris Lattner authored
among others. llvm-svn: 44302
-
Chris Lattner authored
Improve a comment. Unbreak Duncan's carefully written path compression where I didn't realize what was happening! llvm-svn: 44301
-
Chris Lattner authored
1) Change the interface to TargetLowering::ExpandOperationResult to take and return entire NODES that need a result expanded, not just the value. This allows us to handle things like READCYCLECOUNTER, which returns two values. 2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES. 3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new ExpandOperationResult. This makes the result simpler and fully general. 4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes. 5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM i64 shifts, allowing them to work with LegalizeDAGTypes. 6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT, allowing them to work with LegalizeDAGTypes. LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when type legalization in LegalizeDAG is ifdef'd out. llvm-svn: 44300
-
Chris Lattner authored
llvm-svn: 44299
-
Chris Lattner authored
llvm-svn: 44298
-
- Nov 23, 2007
-
-
Chris Lattner authored
llvm-svn: 44296
-
Chris Lattner authored
llvm-svn: 44295
-
Chris Lattner authored
Fix APInt::countTrailingZeros to return BitWidth if the input is zero instead of returning some random large number. llvm-svn: 44294
-
Chris Lattner authored
llvm-svn: 44293
-
Chris Lattner authored
llvm-svn: 44292
-
Chris Lattner authored
llvm-svn: 44291
-
Duncan Sands authored
OnlyReadsMemoryFns tables are dead! We get more, and more accurate, information from gcc via the readnone and readonly function attributes. llvm-svn: 44288
-
Duncan Sands authored
from the old ADCE implementation (there it was correct because the transform was being done for read-only functions). llvm-svn: 44287
-
Chris Lattner authored
even though the bitcast operand did not have integer type. This fixes PR1814. llvm-svn: 44286
-
Chris Lattner authored
llvm-svn: 44284
-
Chris Lattner authored
llvm-svn: 44283
-
Chris Lattner authored
llvm-svn: 44282
-
- Nov 22, 2007
-
-
Anton Korobeynikov authored
llvm-svn: 44281
-
Duncan Sands authored
llvm-svn: 44280
-
Duncan Sands authored
Based on a patch by Török Edwin. llvm-svn: 44279
-