summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* 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-051-3/+3
| | | | llvm-svn: 55853
* 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-051-5/+17
| | | | 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-051-0/+6
| | | | | | registers for fastcc calls. llvm-svn: 55840
* Add a variant of AnalyzeCallOperands that can be used by fast isel.Evan Cheng2008-09-051-0/+17
| | | | 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
* 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-052-1/+89
| | | | | | | | 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
* For whatever the reason, x86 CallingConv::Fast (i.e. fastcc) was not passing ↵Evan Cheng2008-09-042-0/+19
| | | | | | 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
* 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
* Initialize loop data first.Devang Patel2008-09-041-2/+1
| | | | llvm-svn: 55792
* Neaten this up a bit. No functionality change.Duncan Sands2008-09-041-15/+14
| | | | llvm-svn: 55789
* Do not unswitch if the function notes say we're optimizing this function for ↵Devang Patel2008-09-041-1/+7
| | | | | | size. llvm-svn: 55786
* try to seperate the mechanism into something others can useAndrew Lenharth2008-09-041-20/+70
| | | | llvm-svn: 55785
* Add intrinsic forms of pow and exp2. The non-intrinsicDale Johannesen2008-09-041-0/+10
| | | | | | forms remain to handle older IR files, but will go away soon. llvm-svn: 55781
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-04122-153/+151
| | | | llvm-svn: 55779
* Fix the ordering of operands to the store (inverted relative to LLVM IR), ↵Owen Anderson2008-09-041-2/+4
| | | | | | and fix the testcase. llvm-svn: 55777
* Clean up uses of TargetLowering::getTargetMachine.Dan Gohman2008-09-045-8/+8
| | | | llvm-svn: 55769
* cleanup as per Duncan's reviewAndrew Lenharth2008-09-041-33/+42
| | | | llvm-svn: 55766
* Add a first attempt at implementing stores for X86 fast isel using target hooks.Owen Anderson2008-09-041-0/+87
| | | | | | Dan or Evan, please review. llvm-svn: 55764
* Load from GV stub should be locally CSE'd.Evan Cheng2008-09-041-0/+2
| | | | llvm-svn: 55763
* Fix an overly strict assertion. Source register of a copy may not be killed, ↵Evan Cheng2008-09-041-1/+2
| | | | | | it may be killed by an implicit super-register use. llvm-svn: 55762
* Remove code that pad number of bytes to pop for X86_FastCall CC. The code ↵Evan Cheng2008-09-041-15/+0
| | | | | | doesn't do the "aligning" for Cygwin, Mingw, and Windows. But aligning it on Darwin and Linux breaks gcc compatibility. That ruled out all the platforms we support! llvm-svn: 55756
* Add intrinsics for log, log2, log10, exp, exp2.Dale Johannesen2008-09-0411-0/+410
| | | | | | No functional change (and no FE change to generate them). llvm-svn: 55753
* Do trivial local CSE for constants and other non-Instruction valuesDan Gohman2008-09-031-12/+15
| | | | | | in FastISel. llvm-svn: 55748
* Put RegsForValue in the llvm namespace to avoid warnings aboutDan Gohman2008-09-031-1/+1
| | | | | | | classes in the llvm namespace having members with types from anonymous namespaces. llvm-svn: 55747
* Create HandlePHINodesInSuccessorBlocksFast, a version ofDan Gohman2008-09-036-219/+257
| | | | | | | | | | | | | HandlePHINodesInSuccessorBlocks that works FastISel-style. This allows PHI nodes to be updated correctly while using FastISel. This also involves some code reorganization; ValueMap and MBBMap are now members of the FastISel class, so they needn't be passed around explicitly anymore. Also, SelectInstructions is changed to SelectInstruction, and only does one instruction at a time. llvm-svn: 55746
* Update inline threshold for current function if the notes say, optimize for ↵Devang Patel2008-09-031-2/+9
| | | | | | size. llvm-svn: 55745
* Fix a bug that prevented PRE from applying in some cases.Owen Anderson2008-09-031-3/+5
| | | | llvm-svn: 55744
* Avoid extra comma.Devang Patel2008-09-031-3/+4
| | | | llvm-svn: 55742
* Parse and print opt_size note.Devang Patel2008-09-032-3/+12
| | | | llvm-svn: 55740
* Initial version of a Partial Specialization IPO pass. It triggers a couple ↵Andrew Lenharth2008-09-031-0/+127
| | | | | | hundred times on 176.gcc. I don't know the performance impact yet, the heuristic is quite simple still. llvm-svn: 55734
OpenPOWER on IntegriCloud