Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Tidy up several unbeseeming casts from pointer to intptr_t. | Dan Gohman | 2008-09-04 | 122 | -153/+151 |
| | | | | llvm-svn: 55779 | ||||
* | Fix the ordering of operands to the store (inverted relative to LLVM IR), ↵ | Owen Anderson | 2008-09-04 | 1 | -2/+4 |
| | | | | | | and fix the testcase. llvm-svn: 55777 | ||||
* | Clean up uses of TargetLowering::getTargetMachine. | Dan Gohman | 2008-09-04 | 5 | -8/+8 |
| | | | | llvm-svn: 55769 | ||||
* | cleanup as per Duncan's review | Andrew Lenharth | 2008-09-04 | 1 | -33/+42 |
| | | | | llvm-svn: 55766 | ||||
* | Add a first attempt at implementing stores for X86 fast isel using target hooks. | Owen Anderson | 2008-09-04 | 1 | -0/+87 |
| | | | | | | Dan or Evan, please review. llvm-svn: 55764 | ||||
* | Load from GV stub should be locally CSE'd. | Evan Cheng | 2008-09-04 | 1 | -0/+2 |
| | | | | llvm-svn: 55763 | ||||
* | Fix an overly strict assertion. Source register of a copy may not be killed, ↵ | Evan Cheng | 2008-09-04 | 1 | -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 Cheng | 2008-09-04 | 1 | -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 Johannesen | 2008-09-04 | 11 | -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 values | Dan Gohman | 2008-09-03 | 1 | -12/+15 |
| | | | | | | in FastISel. llvm-svn: 55748 | ||||
* | Put RegsForValue in the llvm namespace to avoid warnings about | Dan Gohman | 2008-09-03 | 1 | -1/+1 |
| | | | | | | | classes in the llvm namespace having members with types from anonymous namespaces. llvm-svn: 55747 | ||||
* | Create HandlePHINodesInSuccessorBlocksFast, a version of | Dan Gohman | 2008-09-03 | 6 | -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 Patel | 2008-09-03 | 1 | -2/+9 |
| | | | | | | size. llvm-svn: 55745 | ||||
* | Fix a bug that prevented PRE from applying in some cases. | Owen Anderson | 2008-09-03 | 1 | -3/+5 |
| | | | | llvm-svn: 55744 | ||||
* | Avoid extra comma. | Devang Patel | 2008-09-03 | 1 | -3/+4 |
| | | | | llvm-svn: 55742 | ||||
* | Parse and print opt_size note. | Devang Patel | 2008-09-03 | 2 | -3/+12 |
| | | | | llvm-svn: 55740 | ||||
* | Initial version of a Partial Specialization IPO pass. It triggers a couple ↵ | Andrew Lenharth | 2008-09-03 | 1 | -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.used | Dale Johannesen | 2008-09-03 | 1 | -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 Patel | 2008-09-03 | 1 | -1/+1 |
| | | | | llvm-svn: 55720 | ||||
* | Add parentheses to make code more readable. | Devang Patel | 2008-09-03 | 1 | -1/+1 |
| | | | | llvm-svn: 55717 | ||||
* | Fix comments. | Devang Patel | 2008-09-03 | 1 | -2/+3 |
| | | | | llvm-svn: 55716 | ||||
* | If a SCC has a node without a function, then the SCC | Duncan Sands | 2008-09-03 | 1 | -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 Patel | 2008-09-03 | 1 | -0/+70 |
| | | | | llvm-svn: 55713 | ||||
* | Handle "always inline" note during inline cost analysis. | Devang Patel | 2008-09-03 | 2 | -6/+4 |
| | | | | llvm-svn: 55712 | ||||
* | Check noinline note and ignore other notes. | Devang Patel | 2008-09-03 | 1 | -1/+1 |
| | | | | llvm-svn: 55711 | ||||
* | Handle "noinline" note inside the simple inliner. | Devang Patel | 2008-09-03 | 2 | -4/+7 |
| | | | | llvm-svn: 55708 | ||||
* | Oops, I accidentally broke the fallback case with my last commit. | Owen Anderson | 2008-09-03 | 1 | -0/+2 |
| | | | | llvm-svn: 55704 | ||||
* | Fix an issue where we were reusing materializations of constants in blocks ↵ | Owen Anderson | 2008-09-03 | 1 | -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 FunctionLoweringInfo | Dan Gohman | 2008-09-03 | 3 | -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 Sands | 2008-09-03 | 1 | -1/+1 |
| | | | | llvm-svn: 55700 | ||||
* | Separate MachineInstr-emitting routines from actual scheduling | Dan Gohman | 2008-09-03 | 2 | -751/+772 |
| | | | | | | routines and move them into a separate file, ScheduleDAGEmit.cpp. llvm-svn: 55699 | ||||
* | Fix addRegisterDead and addRegisterKilled to be more thorough | Dan Gohman | 2008-09-03 | 1 | -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 fact | Duncan Sands | 2008-09-03 | 1 | -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 the | Duncan Sands | 2008-09-03 | 1 | -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 structural | Nick Lewycky | 2008-09-03 | 1 | -12/+4 |
| | | | | | | equivalence. llvm-svn: 55694 | ||||
* | Add X86 target hook to implement load (even from GlobalAddress). | Evan Cheng | 2008-09-03 | 1 | -1/+130 |
| | | | | llvm-svn: 55693 | ||||
* | If TargetSelectInstruction returns true, move to next instruction. | Evan Cheng | 2008-09-03 | 1 | -1/+3 |
| | | | | llvm-svn: 55692 | ||||
* | Don't apply this transform to vectors. Fixes PR2756. | Nick Lewycky | 2008-09-03 | 1 | -3/+4 |
| | | | | llvm-svn: 55690 | ||||
* | Don't crash when trying to constant fold a vector with some elements that can't | Nick Lewycky | 2008-09-03 | 1 | -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 Kremenek | 2008-09-03 | 1 | -1/+1 |
| | | | | | | case-sensitive filesystems. llvm-svn: 55687 | ||||
* | Unbreak fast isel. | Evan Cheng | 2008-09-03 | 1 | -2/+5 |
| | | | | llvm-svn: 55685 | ||||
* | Add additional check to ensure that iv is canonicalized. | Devang Patel | 2008-09-03 | 1 | -0/+1 |
| | | | | llvm-svn: 55682 | ||||
* | Check iteration count. | Devang Patel | 2008-09-03 | 1 | -0/+4 |
| | | | | llvm-svn: 55680 | ||||
* | Let tblgen only generate fastisel routines, not the class definition. This ↵ | Evan Cheng | 2008-09-03 | 4 | -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 Patel | 2008-09-03 | 1 | -2/+3 |
| | | | | llvm-svn: 55678 | ||||
* | s/FP_AlwaysInline/FN_NOTE_AlwaysInline/g | Devang Patel | 2008-09-02 | 5 | -23/+23 |
| | | | | llvm-svn: 55676 | ||||
* | If all IV uses are extending integer IV then change the type of IV itself, ↵ | Devang Patel | 2008-09-02 | 1 | -0/+201 |
| | | | | | | if possible. llvm-svn: 55674 | ||||
* | respect inline=never and inline=always notes. | Devang Patel | 2008-09-02 | 1 | -1/+8 |
| | | | | llvm-svn: 55673 | ||||
* | 80 col violations. | Evan Cheng | 2008-09-02 | 1 | -2/+4 |
| | | | | llvm-svn: 55668 | ||||
* | Read and write function notes. | Devang Patel | 2008-09-02 | 2 | -0/+4 |
| | | | | llvm-svn: 55657 |