| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Line this up as well. | Nick Lewycky | 2009-11-01 | 1 | -1/+1 | |
| | | | | | llvm-svn: 85748 | |||||
| * | Fix whitespace. | Nick Lewycky | 2009-11-01 | 1 | -2/+2 | |
| | | | | | llvm-svn: 85747 | |||||
| * | Fix a couple more places where we are creating ld / st instructions without ↵ | Evan Cheng | 2009-11-01 | 2 | -4/+36 | |
| | | | | | | | memoperands. llvm-svn: 85746 | |||||
| * | Make use of imm12 version of Thumb2 ldr / str instructions more aggressively. | Evan Cheng | 2009-11-01 | 2 | -6/+91 | |
| | | | | | llvm-svn: 85743 | |||||
| * | fix two strange things in the default passmgr: | Chris Lattner | 2009-11-01 | 1 | -2/+8 | |
| | | | | | | | | | | | | | | | 1. we'd run simplifycfg at the very start, even though the per function passes have already cleaned this up. 2. In the main per-function pipeline that is interlaced with inlining etc, we would do instcombine, jump threading, simplifycfg *before* doing SROA. SROA is much more likely to expose opportunities for these passes than they are for SROA, so move SRoA up earlier. also add some comments. llvm-svn: 85742 | |||||
| * | merge phi-merge.ll into phi.ll | Chris Lattner | 2009-11-01 | 2 | -31/+33 | |
| | | | | | | | | I don't know what Dan wants to do with phi-merge-gep.ll, I'll let him deal with it because instcombine may end up sinking these. llvm-svn: 85739 | |||||
| * | when merging two loads, make sure to take the min of their alignment, | Chris Lattner | 2009-11-01 | 2 | -1/+27 | |
| | | | | | | | | not the max. This didn't matter until the previous patch because instcombine would refuse to sink loads with differenting alignments. llvm-svn: 85738 | |||||
| * | split load sinking out to its own function, like gep sinking. | Chris Lattner | 2009-11-01 | 1 | -66/+101 | |
| | | | | | llvm-svn: 85737 | |||||
| * | fix a bug noticed by inspection: when instcombine sinks loads through | Chris Lattner | 2009-11-01 | 2 | -4/+45 | |
| | | | | | | | | | phis, it didn't preserve the alignment of the load. This is a missed optimization of the alignment is high and a miscompilation when the alignment is low. llvm-svn: 85736 | |||||
| * | IPSCCP apparently is not a superset of IPCP, this is bad, | Chris Lattner | 2009-11-01 | 1 | -0/+1 | |
| | | | | | | | | but I'll investigate it separately. This unbreaks test/FrontendC/weak_constant.c llvm-svn: 85735 | |||||
| * | convert to filecheck. | Chris Lattner | 2009-11-01 | 1 | -20/+49 | |
| | | | | | llvm-svn: 85734 | |||||
| * | Improve the other instance of the comment. | Duncan Sands | 2009-11-01 | 1 | -1/+1 | |
| | | | | | llvm-svn: 85733 | |||||
| * | Add a missing closing parenthesis, and tweak to fit in 80 | Duncan Sands | 2009-11-01 | 1 | -2/+2 | |
| | | | | | | | columns. llvm-svn: 85732 | |||||
| * | only run GlobalDCE at -O3 and run it late instead of early. | Chris Lattner | 2009-11-01 | 1 | -4/+9 | |
| | | | | | | | | GlobalOpt already deletes trivially dead functions/globals, so GlobalDCE only adds values for cycles of dead things. llvm-svn: 85731 | |||||
| * | cleanups, switch GlobalDCE to SmallPtrSet instead of std::set | Chris Lattner | 2009-11-01 | 2 | -16/+10 | |
| | | | | | llvm-svn: 85730 | |||||
| * | We currently only run ipsccp at LTO time, which is silly. It subsumes | Chris Lattner | 2009-11-01 | 2 | -2/+20 | |
| | | | | | | | | | | | | | ipconstprop and doesn't take much time. Just run it in its place. This adds a testcase for it, which I plan to expand to cover other "integration" cases, where we expect the optimizer to be able to eliminate various things. Due to phase order issues we've regressed in a number of areas and integration tests are the only way I see to prevent this. llvm-svn: 85729 | |||||
| * | remove a bunch of locking from LLVMContextImpl. Since only one thread | Chris Lattner | 2009-11-01 | 10 | -89/+10 | |
| | | | | | | | | can be banging on a context at a time, this isn't needed. Owen, please review. llvm-svn: 85728 | |||||
| * | improve comment. | Chris Lattner | 2009-11-01 | 1 | -1/+1 | |
| | | | | | llvm-svn: 85725 | |||||
| * | add a comment about why we don't allow inlining indbr. | Chris Lattner | 2009-11-01 | 1 | -0/+5 | |
| | | | | | llvm-svn: 85724 | |||||
| * | Fix tests. | Evan Cheng | 2009-11-01 | 2 | -4/+4 | |
| | | | | | llvm-svn: 85723 | |||||
| * | the verifier shouldn't modify the IR. | Chris Lattner | 2009-11-01 | 5 | -12/+20 | |
| | | | | | llvm-svn: 85722 | |||||
| * | Reverting 85714, 85715, 85716, which are breaking the build | Douglas Gregor | 2009-11-01 | 8 | -15/+3 | |
| | | | | | llvm-svn: 85717 | |||||
| * | Add a function to Passes.h to allow clients to create instances | Dan Gohman | 2009-11-01 | 2 | -0/+9 | |
| | | | | | | | of the ScalarEvolution pass without needing to #include ScalarEvolution.h. llvm-svn: 85716 | |||||
| * | Don't #include Pass.h from CallGraph.h. | Dan Gohman | 2009-11-01 | 2 | -1/+2 | |
| | | | | | llvm-svn: 85715 | |||||
| * | Remove the #include of Pass.h from PassManager.h. This breaks a significant | Dan Gohman | 2009-11-01 | 4 | -2/+4 | |
| | | | | | | | #include dependency, as frontends commonly pull in PassManager.h. llvm-svn: 85714 | |||||
| * | teach ipsccp and ipconstprop that a blockaddress doesn't 'take the address' ↵ | Chris Lattner | 2009-11-01 | 2 | -2/+7 | |
| | | | | | | | | | | of a function in a way that should prevent ip constprop. This allows clang/test/CodeGen/indirect-goto.c to pass with the new indirect goto lowering. llvm-svn: 85709 | |||||
| * | change llvm::MergeBlockIntoPredecessor to not merge two blocks BB1->BB2 | Chris Lattner | 2009-11-01 | 1 | -3/+7 | |
| | | | | | | | | | | when BB2 has its address taken. Since it ends up doing BB2->rauw(BB1), this can cause the address of the entry block to be taken. Since it is generally undesirable to nuke blocks whose address is taken, even when we can, just unconditionally stop this xform. llvm-svn: 85708 | |||||
| * | strengthen an assumption: RevectorBlockTo knows that PredBB | Chris Lattner | 2009-11-01 | 1 | -12/+14 | |
| | | | | | | | | | ended in an uncond branch because the pass requires BreakCriticalEdges. However, BCE doesn't eliminate critical adges from indbrs. llvm-svn: 85707 | |||||
| * | fix an issue where the verifier would reject a function whose entry | Chris Lattner | 2009-11-01 | 3 | -2/+19 | |
| | | | | | | | block had its address taken even if the blockaddress was dead. llvm-svn: 85706 | |||||
| * | if CostMetrics says to never duplicate some code, don't unswitch a loop. | Chris Lattner | 2009-11-01 | 1 | -1/+2 | |
| | | | | | | | This prevents unswitching from duplicating indbr's. llvm-svn: 85705 | |||||
| * | constant fold indirectbr(blockaddress(%bb)) -> br label %bb. | Chris Lattner | 2009-11-01 | 1 | -9/+46 | |
| | | | | | llvm-svn: 85704 | |||||
| * | improve x86 codegen support for blockaddress. We now compile | Chris Lattner | 2009-11-01 | 2 | -6/+30 | |
| | | | | | | | | | | | | | | | | | | | | | | | the testcase into: _test1: ## @test1 ## BB#0: ## %entry leaq L_test1_bb6(%rip), %rax jmpq *%rax L_test1_bb: ## Address Taken LBB1_1: ## %bb movb $1, %al ret L_test1_bb6: ## Address Taken LBB1_2: ## %bb6 movb $2, %al ret Note, it is very very strange that BlockAddressSDNode doesn't carry around TargetFlags. Dan, please fix this. llvm-svn: 85703 | |||||
| * | pull check for return inst out of loop, never inline a callee that contains | Chris Lattner | 2009-11-01 | 1 | -5/+7 | |
| | | | | | | | an indirectbr. llvm-svn: 85702 | |||||
| * | Fix BlockAddress::replaceUsesOfWithOnConstant to correctly | Chris Lattner | 2009-11-01 | 1 | -5/+8 | |
| | | | | | | | maintain the block use count in SubclassData. llvm-svn: 85701 | |||||
| * | implement linker support for BlockAddress. | Chris Lattner | 2009-11-01 | 1 | -17/+13 | |
| | | | | | llvm-svn: 85700 | |||||
| * | Revert 85678/85680. The decision is to stay with the current form of | Chris Lattner | 2009-11-01 | 11 | -47/+25 | |
| | | | | | | | | indirectbr, thus we don't need "blockaddr(@func, null)". Eliminate it for simplicity. llvm-svn: 85699 | |||||
| * | Use cbz and cbnz instructions. | Evan Cheng | 2009-10-31 | 4 | -11/+96 | |
| | | | | | llvm-svn: 85698 | |||||
| * | vml[as].f32 cause stalls in following advanced SIMD instructions. Avoid using | Jim Grosbach | 2009-10-31 | 4 | -10/+15 | |
| | | | | | | | them for scalar floating point operations for now. llvm-svn: 85697 | |||||
| * | Consolidate test files | Jim Grosbach | 2009-10-31 | 4 | -122/+100 | |
| | | | | | llvm-svn: 85696 | |||||
| * | Change to use FileCheck | Jim Grosbach | 2009-10-31 | 1 | -1/+3 | |
| | | | | | llvm-svn: 85695 | |||||
| * | Make tests more explicit about which instructions are expected. | Jim Grosbach | 2009-10-31 | 1 | -2/+2 | |
| | | | | | llvm-svn: 85694 | |||||
| * | Grammar tweak to comments | Jim Grosbach | 2009-10-31 | 1 | -4/+4 | |
| | | | | | llvm-svn: 85693 | |||||
| * | Make sure PRE doesn't split crit edges from indirectbr. | Chris Lattner | 2009-10-31 | 1 | -1/+5 | |
| | | | | | llvm-svn: 85692 | |||||
| * | Update test to be more explicit about what instruction sequences are ↵ | Jim Grosbach | 2009-10-31 | 1 | -26/+39 | |
| | | | | | | | expected for each operation. llvm-svn: 85691 | |||||
| * | llvm::SplitEdge should refuse to split an edge from an indirectbr. | Chris Lattner | 2009-10-31 | 2 | -1/+4 | |
| | | | | | | | Fix CodeGenPrepare to not try to split edges from indirectbr. llvm-svn: 85690 | |||||
| * | Update test to be more explicit about what instruction sequences are ↵ | Jim Grosbach | 2009-10-31 | 1 | -3/+16 | |
| | | | | | | | expected for each operation. llvm-svn: 85689 | |||||
| * | update the comment above llvm::SplitCriticalEdge, and make | Chris Lattner | 2009-10-31 | 2 | -9/+30 | |
| | | | | | | | it abort on IndirectBrInst as describe in the comment. llvm-svn: 85688 | |||||
| * | Expand 64-bit logical shift right inline | Jim Grosbach | 2009-10-31 | 2 | -5/+8 | |
| | | | | | llvm-svn: 85687 | |||||
| * | Expand 64-bit arithmetic shift right inline | Jim Grosbach | 2009-10-31 | 2 | -2/+37 | |
| | | | | | llvm-svn: 85685 | |||||
| * | Fix a missing newline in the dwarf output code. | Dan Gohman | 2009-10-31 | 1 | -0/+1 | |
| | | | | | llvm-svn: 85684 | |||||

