summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* 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
* 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
* Adjust libcalls tests to expect intrinsic for exp2Dale Johannesen2008-09-043-1/+28
| | | | llvm-svn: 55784
* 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-04137-169/+170
| | | | llvm-svn: 55779
* Fix the ordering of operands to the store (inverted relative to LLVM IR), ↵Owen Anderson2008-09-042-3/+5
| | | | | | 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-042-1/+89
| | | | | | Dan or Evan, please review. llvm-svn: 55764
* Load from GV stub should be locally CSE'd.Evan Cheng2008-09-043-8/+14
| | | | 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-042-16/+1
| | | | | | 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-0414-1/+438
| | | | | | 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-032-12/+16
| | | | | | 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-039-249/+294
| | | | | | | | | | | | | 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-033-0/+134
| | | | | | hundred times on 176.gcc. I don't know the performance impact yet, the heuristic is quite simple still. llvm-svn: 55734
* Do not emit a UsedDirective for things in the llvm.usedDale Johannesen2008-09-032-3/+33
| | | | | | | | | list that have internal linkage; the linker doesn't need or want this. (These objects must still be preserved at compile time, so just removing them from the llvm.used list doesn't work.) Should affect only Darwin. llvm-svn: 55722
* Fix typo in a comment.Devang Patel2008-09-031-1/+1
| | | | llvm-svn: 55720
* Add missing decls.Devang Patel2008-09-032-0/+6
| | | | llvm-svn: 55719
* Add parentheses to make code more readable.Devang Patel2008-09-031-1/+1
| | | | llvm-svn: 55717
* Fix comments.Devang Patel2008-09-031-2/+3
| | | | llvm-svn: 55716
* Testcase for commits 55700 and 55714.Duncan Sands2008-09-031-0/+1104
| | | | llvm-svn: 55715
* If a SCC has a node without a function, then the SCCDuncan Sands2008-09-031-9/+14
| | | | | | | | | | analysis would bail out without removing function records for other members of the SCC (which may exist if those functions read or wrote global variables). Since these are initialized to "readnone", this resulted in incorrect alias analysis results. llvm-svn: 55714
* Add custom inliner that handles only functions that are marked as always_inline.Devang Patel2008-09-031-0/+70
| | | | llvm-svn: 55713
* Handle "always inline" note during inline cost analysis.Devang Patel2008-09-032-6/+4
| | | | llvm-svn: 55712
* Check noinline note and ignore other notes.Devang Patel2008-09-031-1/+1
| | | | llvm-svn: 55711
* Handle "noinline" note inside the simple inliner.Devang Patel2008-09-032-4/+7
| | | | llvm-svn: 55708
* Oops, I accidentally broke the fallback case with my last commit.Owen Anderson2008-09-031-0/+2
| | | | llvm-svn: 55704
* Fix an issue where we were reusing materializations of constants in blocks ↵Owen Anderson2008-09-031-9/+15
| | | | | | | | | not dominated by the materialization. This is the simple fix, materializing the constant before every use. It might be better to either track domination of uses or to materialize all constants and the beginning of the function and let remat sort when to do materialization at uses. llvm-svn: 55703
* Update test to check call instruction.Devang Patel2008-09-031-1/+1
| | | | llvm-svn: 55702
* Split the SelectionDAG-building code, including the FunctionLoweringInfoDan Gohman2008-09-034-5134/+5317
| | | | | | | and SelectionDAGLowering classes, out of SelectionDAGISel.cpp and put it in a separate file, SelectionDAGBuild.cpp. llvm-svn: 55701
OpenPOWER on IntegriCloud