summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Do not emit a UsedDirective for things in the llvm.usedDale Johannesen2008-09-031-3/+32
| | | | | | | | | 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 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
* 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
* Split the SelectionDAG-building code, including the FunctionLoweringInfoDan Gohman2008-09-033-5134/+5303
| | | | | | | and SelectionDAGLowering classes, out of SelectionDAGISel.cpp and put it in a separate file, SelectionDAGBuild.cpp. llvm-svn: 55701
* Fix maxo bado thinko.Duncan Sands2008-09-031-1/+1
| | | | llvm-svn: 55700
* Separate MachineInstr-emitting routines from actual schedulingDan Gohman2008-09-032-751/+772
| | | | | | routines and move them into a separate file, ScheduleDAGEmit.cpp. llvm-svn: 55699
* Fix addRegisterDead and addRegisterKilled to be more thoroughDan Gohman2008-09-031-19/+34
| | | | | | | | | | | | | | | | when searching for redundant subregister dead/kill bits. Previously it was common to see instructions marked like this: "RET %EAX<imp-use,kill>, %AX<imp-use,kill>" With this change, addRegisterKilled continues scanning after finding the %EAX operand, so it proceeds to discover the redundant %AX kill and eliminates it, producing this: "RET %EAX<imp-use,kill>" This currently has no effect on the generated code. llvm-svn: 55698
* Since onlyReadsMemory returns true if in factDuncan Sands2008-09-031-2/+4
| | | | | | | | doesNotAccessMemory, check doesNotAccessMemory first, since otherwise functions may be marked readonly rather than readnone. llvm-svn: 55697
* Cleanup GlobalsModRef a bit. When analysing theDuncan Sands2008-09-031-104/+108
| | | | | | | | | | | callgraph, when one member of a SCC calls another then the analysis would drop to mod-ref because there is (usually) no function info for the callee yet; fix this. Teach the analysis about function attributes, in particular the readonly attribute (which requires being careful about globals). llvm-svn: 55696
* Try to fold each element of a vector. This is needed to maintain structuralNick Lewycky2008-09-031-12/+4
| | | | | | equivalence. llvm-svn: 55694
* Add X86 target hook to implement load (even from GlobalAddress).Evan Cheng2008-09-031-1/+130
| | | | llvm-svn: 55693
* If TargetSelectInstruction returns true, move to next instruction.Evan Cheng2008-09-031-1/+3
| | | | llvm-svn: 55692
* Don't apply this transform to vectors. Fixes PR2756.Nick Lewycky2008-09-031-3/+4
| | | | llvm-svn: 55690
* Don't crash when trying to constant fold a vector with some elements that can'tNick Lewycky2008-09-031-6/+12
| | | | | | | | | be folded. Instead, fail to fold the entire vector. We could also return a vector with some elements folded and some not. If anyone thinks that's a better approach, please speak up! llvm-svn: 55689
* Fix capitalization in #include of FastISel.h. This unbreaks the build on ↵Ted Kremenek2008-09-031-1/+1
| | | | | | case-sensitive filesystems. llvm-svn: 55687
* Unbreak fast isel.Evan Cheng2008-09-031-2/+5
| | | | llvm-svn: 55685
* Add additional check to ensure that iv is canonicalized.Devang Patel2008-09-031-0/+1
| | | | llvm-svn: 55682
* Check iteration count.Devang Patel2008-09-031-0/+4
| | | | llvm-svn: 55680
* Let tblgen only generate fastisel routines, not the class definition. This ↵Evan Cheng2008-09-034-39/+28
| | | | | | makes it easier for targets to define its own fastisel class. llvm-svn: 55679
* While removing PHI, use basicblock to identify incoming value.Devang Patel2008-09-031-2/+3
| | | | llvm-svn: 55678
* s/FP_AlwaysInline/FN_NOTE_AlwaysInline/gDevang Patel2008-09-025-23/+23
| | | | llvm-svn: 55676
* If all IV uses are extending integer IV then change the type of IV itself, ↵Devang Patel2008-09-021-0/+201
| | | | | | if possible. llvm-svn: 55674
* respect inline=never and inline=always notes.Devang Patel2008-09-021-1/+8
| | | | llvm-svn: 55673
* 80 col violations.Evan Cheng2008-09-021-2/+4
| | | | llvm-svn: 55668
* Read and write function notes.Devang Patel2008-09-022-0/+4
| | | | llvm-svn: 55657
OpenPOWER on IntegriCloud