summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Eliminate a compile time warning.Evan Cheng2008-09-071-1/+1
| | | | llvm-svn: 55878
* Handle x86 truncate to i8 with target hook for now.Evan Cheng2008-09-072-0/+50
| | | | llvm-svn: 55877
* Fix indentation of generated code.Evan Cheng2008-09-071-1/+1
| | | | llvm-svn: 55876
* Ignore multi-instruction patterns. e.g.Evan Cheng2008-09-071-0/+14
| | | | | | | def : Pat<(i8 (trunc GR32:$src)), (i8 (EXTRACT_SUBREG (MOV32to32_ GR32:$src), x86_subreg_8bit))> llvm-svn: 55875
* fix crash when the malloc/free function is defined or is a declaration with ↵Nuno Lopes2008-09-061-4/+2
| | | | | | | | 0 parameters. this pass doesnt seem to be used, but still it's now a little more correct llvm-svn: 55873
* When PruneEH turned an invoke into an ordinaryDuncan Sands2008-09-064-1/+1463
| | | | | | | | | | | | call (thus changing the call site) it didn't inform the callgraph about this. But the call site does matter - as shown by the testcase, the callgraph become invalid after the inliner ran (with an edge between two functions simply missing), resulting in wrong deductions by GlobalsModRef. llvm-svn: 55872
* Fix constant pool loads, and remove broken versions of addConstantPoolReference.Owen Anderson2008-09-065-45/+10
| | | | llvm-svn: 55868
* Fix the X86 addConstantPoolReference, which had the operands in the wrong order.Owen Anderson2008-09-061-1/+2
| | | | llvm-svn: 55867
* Next limited float precision expansion (log2 12 bits)Dale Johannesen2008-09-051-3/+43
| | | | llvm-svn: 55866
* Revert r55859. This is breaking the build in the abscence of its companion ↵Owen Anderson2008-09-055-16/+41
| | | | | | commit. llvm-svn: 55865
* Fix for PR2687: Add patterns to match sint_to_fp and fp_to_sint for <2 x Eli Friedman2008-09-052-0/+19
| | | | | | | | | i32>. This is a little messy, but it works. We should really get rid of the intrinsics, though, since they map perfectly well to standard LLVM instructions. llvm-svn: 55864
* Move the code that inserts copies for function livein registersDan Gohman2008-09-052-109/+113
| | | | | | | | | out of ScheduleDAGEmit.cpp and into SelectionDAGISel.cpp. This allows it to be run exactly once per function, even if multiple SelectionDAG iterations happen in the entry block, as may happen with FastISel. llvm-svn: 55863
* Remove unused map.Devang Patel2008-09-051-1/+0
| | | | llvm-svn: 55861
* Mark math lib intrinsics readonly, on the groundsDale Johannesen2008-09-051-1/+4
| | | | | | | | | that they read the rounding mode. This is conservatively correct, which they weren't before. We can do more optimization on these if we actually model the rounding mode. llvm-svn: 55860
* Delete the removeCallEdgeTo callgraph method,Duncan Sands2008-09-054-29/+12
| | | | | | | | | | | | | | | because it does not maintain a correct list of callsites. I discovered (see following commit) that the inliner will create a wrong callgraph if it is fed a callgraph with correct edges but incorrect callsites. These were created by Prune-EH, and while it wasn't done via removeCallEdgeTo, it could have been done via removeCallEdgeTo, which is an accident waiting to happen. Use removeCallEdgeFor instead. llvm-svn: 55859
* Prevent our own passes from promoting this toDuncan Sands2008-09-051-1/+1
| | | | | | readonly. llvm-svn: 55858
* Fix X86FastISel's shift and select code to reject illegal types.Dan Gohman2008-09-051-1/+9
| | | | llvm-svn: 55857
* Add the next limited-precision expansion.Dale Johannesen2008-09-051-3/+42
| | | | llvm-svn: 55856
* Fix the opcodes used by X86FastISel for shifts and conditional moves.Dan Gohman2008-09-051-11/+11
| | | | llvm-svn: 55855
* Factor out code that emits load and store instructions.Evan Cheng2008-09-051-111/+138
| | | | llvm-svn: 55854
* Rename method.Owen Anderson2008-09-052-5/+7
| | | | llvm-svn: 55853
* Fix test.Evan Cheng2008-09-051-2/+2
| | | | llvm-svn: 55849
* FastISel support for AND and OR with type i1.Dan Gohman2008-09-051-2/+10
| | | | llvm-svn: 55846
* Add hooks for other intrinsics to get low-precision expansions.Dale Johannesen2008-09-052-12/+60
| | | | llvm-svn: 55845
* X86FastISel support for shifts and conditional moves.Dan Gohman2008-09-051-0/+99
| | | | llvm-svn: 55844
* FastISel support for ConstantExprs.Dan Gohman2008-09-052-9/+28
| | | | llvm-svn: 55843
* Revert r55817. It broke PIC. FastISel will need to find a differentDan Gohman2008-09-051-3/+1
| | | | | | approach here. llvm-svn: 55842
* If SSE2 is available, x86 should pass first 3 f32/f64 arguments in XMM ↵Evan Cheng2008-09-054-5/+21
| | | | | | registers for fastcc calls. llvm-svn: 55840
* Add a variant of AnalyzeCallOperands that can be used by fast isel.Evan Cheng2008-09-052-0/+23
| | | | llvm-svn: 55838
* Use removeAllCalledFunctions rather than removingDuncan Sands2008-09-051-5/+3
| | | | | | edges one by one by hand. llvm-svn: 55836
* Remove trailing whitespace.Duncan Sands2008-09-051-36/+36
| | | | llvm-svn: 55835
* Strip trailing whitespace.Duncan Sands2008-09-051-14/+14
| | | | llvm-svn: 55834
* Make this pass return that it made a change ifDuncan Sands2008-09-051-1/+5
| | | | | | it modifies a functions attributes. llvm-svn: 55831
* "Fix" PR2762. The testcase now crashes codegenDuncan Sands2008-09-051-1/+19
| | | | | | | elsewhere due to a missing pattern for v2f64 = sint_to_fp v2i32. That is PR2687. llvm-svn: 55828
* Fix a search+replace-o.Dan Gohman2008-09-051-1/+1
| | | | llvm-svn: 55824
* Add -flimit-float-precision to enable some faster,Dale Johannesen2008-09-052-3/+57
| | | | | | | | | but less accurate (non-IEEE) code sequences for certain math library functions. Add the first of several such expansions. Don't worry, if you don't turn it on it won't affect you. llvm-svn: 55823
* Check a comparion's operand type for legality beforeDan Gohman2008-09-051-4/+4
| | | | | | expanding its operands. llvm-svn: 55820
* Fix X86FastISel code for comparisons and conditional branchesDan Gohman2008-09-051-1/+9
| | | | | | | to check the result of getRegForValue before using it, and to check for illegal operand types. llvm-svn: 55819
* FastISel support for unreachable.Dan Gohman2008-09-051-0/+4
| | | | llvm-svn: 55818
* In FastISel mode, the scheduler may be invoked multiple timesDan Gohman2008-09-051-1/+3
| | | | | | | in the same block. Fix the entry-block handling to only run at at the beginning of the entry block, and not any other times. llvm-svn: 55817
* X86FastISel support for conditional branches.Dan Gohman2008-09-051-1/+39
| | | | llvm-svn: 55816
* Add initial support for selecting constant materializations that require ↵Owen Anderson2008-09-053-2/+96
| | | | | | | | constant pool loads on X86 in fast isel. This isn't actually used yet. llvm-svn: 55814
* X86FastISel support for ICmpInst and FCmpInst.Dan Gohman2008-09-041-0/+139
| | | | llvm-svn: 55811
* update.Devang Patel2008-09-041-1/+3
| | | | llvm-svn: 55809
* Document function notes.Devang Patel2008-09-041-1/+37
| | | | llvm-svn: 55808
* For whatever the reason, x86 CallingConv::Fast (i.e. fastcc) was not passing ↵Evan Cheng2008-09-047-16/+53
| | | | | | scalar arguments in registers. This patch defines a new fastcc CC which is slightly different from the FastCall CC. In addition to passing integer arguments in ECX and EDX, it also specify doubles are passed in 8-byte slots which are 8-byte aligned (instead of 4-byte aligned). This avoids a potential performance hazard where doubles span cacheline boundaries. llvm-svn: 55807
* A loop may be unswitched multiple times. Reconstruct dom info. at the end.Devang Patel2008-09-041-5/+8
| | | | llvm-svn: 55806
* Adjust tests to expect new math intrinsics to beDale Johannesen2008-09-043-3/+9
| | | | | | emitted only when errno is not in use. llvm-svn: 55797
* If function notes say optimize for size, then adjust alignment.Devang Patel2008-09-042-0/+4
| | | | llvm-svn: 55794
* Add an include of SmallSet.h.Dan Gohman2008-09-041-0/+1
| | | | llvm-svn: 55793
OpenPOWER on IntegriCloud