summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Revert unintended commmit.Dale Johannesen2009-03-041-5/+2
| | | | llvm-svn: 66001
* Skip ptr-to-ptr bitcasts when counting in another case.Dale Johannesen2009-03-041-4/+4
| | | | llvm-svn: 66000
* Always skip ptr-to-ptr bitcasts when counting,Dale Johannesen2009-03-042-7/+10
| | | | | | per Chris' suggestion. Slightly faster. llvm-svn: 65999
* If a global constant is dead then global's debug info should not prevent the ↵Devang Patel2009-03-041-6/+20
| | | | | | optimizer in deleting the global. And while deleting global, delete global's debug info also. llvm-svn: 65994
* Make my earlier patch to skip debug intrinsicsDale Johannesen2009-03-041-2/+1
| | | | | | when counting work; it was only off by 1. llvm-svn: 65993
* Marking debug info intrinsics as not touching memoryDale Johannesen2009-03-031-0/+3
| | | | | | caused them to be considered trivially dead. Fix this. llvm-svn: 65979
* Instruction counters must skip the bitcasts thatDale Johannesen2009-03-032-1/+11
| | | | | | | feed into llvm.dbg.declare nodes, as well as the debug directives themselves. llvm-svn: 65976
* Recursively remove dead argument while removing llvm.dbg.declare intrinsic.Devang Patel2009-03-031-2/+3
| | | | llvm-svn: 65971
* When removing a store to an alloca that has only oneDale Johannesen2009-03-032-12/+49
| | | | | | | | use, check also for the case where it has two uses, the other being a llvm.dbg.declare. This is needed so debug info doesn't affect codegen. llvm-svn: 65970
* Remove accidental check-ins in r65960. :-(Bill Wendling2009-03-031-5/+1
| | | | llvm-svn: 65961
* Use > instead of >=. We want to promote aggregates of 128-bytes.Bill Wendling2009-03-032-2/+6
| | | | llvm-svn: 65960
* Reapply r65755, but reversing "<" to ">=".Bill Wendling2009-03-031-2/+3
| | | | llvm-svn: 65945
* Fix a bunch of Doxygen syntax issues. Escape special characters,Dan Gohman2009-03-032-4/+4
| | | | | | and put @file directives on their own comment line. llvm-svn: 65920
* Don't count DebugInfo instructions in another limitDale Johannesen2009-03-031-1/+7
| | | | | | (lest they affect codegen). llvm-svn: 65915
* When sinking an insn in InstCombine bring its debugDale Johannesen2009-03-032-2/+26
| | | | | | | | info with it. Don't count debug info insns against the scan maximum in FindAvailableLoadedValue (lest they affect codegen). llvm-svn: 65910
* Ignore debug info intrinsics.Devang Patel2009-03-031-1/+5
| | | | llvm-svn: 65908
* If branch conditions' one successor is dominating another non-latch ↵Devang Patel2009-03-021-0/+15
| | | | | | successor then this loop's iteration space can not be restricted. In this example block bb5 is always executed. llvm-svn: 65902
* Remove all dbg symobls, including those with circular references.Devang Patel2009-03-021-3/+15
| | | | | | This is ugly, but I can't figure out a quick way out of this. llvm-svn: 65889
* Fix PR3694: add an instcombine micro-optimization that helpsDuncan Sands2009-03-021-5/+17
| | | | | | clean up when using variable length arrays in llvm-gcc. llvm-svn: 65832
* Temporarily revert r65755. It was causing failures in the self-hostingBill Wendling2009-03-011-5/+3
| | | | | | | | | | | | | | | | | | | | | testsuite: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/nancvt.ll Failed with exit(1) at line 2 while running: grep 2147027116 nancvt.ll.tmp | count 3 count: expected 3 lines and got 0. child process exited abnormally FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/vec_ins_extract.ll Failed with exit(1) at line 1 while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/vec_ins_extract.ll | opt -scalarrepl -instcombine | llc -march=x86 -mcpu=yonah | not /usr/bin/grep sub.*esp subl $28, %esp subl $28, %esp child process exited abnormally And more. llvm-svn: 65758
* hoist the check for alloca size up so that it controls CanConvertToScalar Chris Lattner2009-03-011-3/+5
| | | | | | as well as isSafeAllocaToScalarRepl. llvm-svn: 65755
* Silence compiler warning about use of uninitialized variables (in reality theseNick Lewycky2009-02-271-1/+1
| | | | | | are always set by reference on the path that uses them.) No functional change. llvm-svn: 65621
* Fix compiler warning about uninitialized variables. No functional change.Nick Lewycky2009-02-271-1/+1
| | | | llvm-svn: 65620
* Ignore dbg info intrinsics when folding conditional branch to Zhou Sheng2009-02-261-1/+5
| | | | | | conditional branch predecessors. llvm-svn: 65509
* Fix PR3667Chris Lattner2009-02-251-1/+1
| | | | llvm-svn: 65464
* Don't block basic block with only SwitchInst to fold into predecessors.Zhou Sheng2009-02-251-1/+5
| | | | llvm-svn: 65456
* Rename ScalarEvolution's getIterationCount to getBackedgeTakenCount,Dan Gohman2009-02-243-45/+44
| | | | | | | | | to more accurately describe what it does. Expand its doxygen comment to describe what the backedge-taken count is and how it differs from the actual iteration count of the loop. Adjust names and comments in associated code accordingly. llvm-svn: 65382
* Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simpleDan Gohman2009-02-241-1/+6
| | | | | | | ashr instcombine to help expose this code. And apply the fix to SelectionDAG's copy of this code too. llvm-svn: 65364
* Generalize the ChangeCompareStride code, in preparation forDan Gohman2009-02-241-94/+96
| | | | | | handling non-constant strides. No functionality change. llvm-svn: 65363
* Preserve the DominanceFrontier analysis in the LoopDeletion pass.Dan Gohman2009-02-241-2/+7
| | | | llvm-svn: 65359
* While folding unconditional return move DbgRegionEndInst into the ↵Devang Patel2009-02-242-23/+10
| | | | | | | | | | | predecessor, instead of removing it. This fixes following tests from llvmgcc42 testsuite. gcc.c-torture/execute/20000605-3.c gcc.c-torture/execute/20020619-1.c gcc.c-torture/execute/20030920-1.c gcc.c-torture/execute/loop-ivopts-1.c llvm-svn: 65353
* Back out the change in 64918 that used sign-extensions when promotingDan Gohman2009-02-231-34/+12
| | | | | | | | | trip counts that use signed comparisons. It's not obviously the best approach for preserving trip count information, and at any rate there isn't anything in the tree right now that makes use of that, so for now always using zero-extensions is preferable. llvm-svn: 65347
* LoopDeletion needs to inform ScalarEvolution when a loop is deleted,Dan Gohman2009-02-231-1/+4
| | | | | | | | so that ScalarEvolution doesn't hang onto a dangling Loop*, which could be a problem if another Loop happens to get allocated at the same address. llvm-svn: 65323
* IndVarSimplify preserves ScalarEvolution. In theDan Gohman2009-02-231-0/+1
| | | | | | | -std-compile-opts sequence, this avoids the need for ScalarEvolution to be rerun before LoopDeletion. llvm-svn: 65318
* Should reset DBI_Prev if DBI_Next == 0.Zhou Sheng2009-02-231-0/+2
| | | | llvm-svn: 65314
* Changed option name from inline-threshold to basic-inline-threshold becauseMon P Wang2009-02-231-1/+1
| | | | | | inline-threshold option is used by the inliner. llvm-svn: 65309
* fix some typos that Duncan noticedChris Lattner2009-02-231-3/+3
| | | | llvm-svn: 65306
* Revert the part of 64623 that attempted to align the source in aDan Gohman2009-02-221-1/+1
| | | | | | | | | | | | | | | memcpy to match the alignment of the destination. It isn't necessary for making loads and stores handled like the SSE loadu/storeu intrinsics, and it was causing a performance regression in MultiSource/Applications/JM/lencod. The problem appears to have been a memcpy that copies from some highly aligned array into an alloca; the alloca was then being assigned a large alignment, which required codegen to perform dynamic stack-pointer re-alignment, which forced the enclosing function to have a frame pointer, which led to increased spilling. llvm-svn: 65289
* Properly parenthesize this expression, fixing a real bug in the newDan Gohman2009-02-221-1/+1
| | | | | | -full-lsr code, as well as a GCC warning. llvm-svn: 65288
* Only try to sink immediate when TLI is not null. It needs to check if ↵Evan Cheng2009-02-221-1/+1
| | | | | | immediate would fit in target addressing field. llvm-svn: 65268
* Don't sign extend the char when expanding char -> int duringNick Lewycky2009-02-211-2/+2
| | | | | | load(bitcast(char[4] to i32*)) evaluation. llvm-svn: 65246
* Add AddrModeMatcher.cppEvan Cheng2009-02-211-0/+1
| | | | llvm-svn: 65228
* Teach LSR sink to sink the immediate portion of the common expression back ↵Evan Cheng2009-02-211-17/+82
| | | | | | into uses if they fit in address modes of all the uses. llvm-svn: 65215
* rename a function to indicate that it checks for profitability as wellChris Lattner2009-02-211-9/+36
| | | | | | | | as legality. Make load sinking and gep sinking more careful: we only do it when it won't pessimize loads from the stack. This has the added benefit of not producing code that is unanalyzable to SROA. llvm-svn: 65209
* Fix strange logic in CollectIVUsers used to determine whether all uses areEvan Cheng2009-02-201-1/+8
| | | | | | | addresses, part 1. This fixes an obvious logic bug. Previously if the only in-loop use is a PHI, it would return AllUsesAreAddresses as true. llvm-svn: 65178
* Simplify code and reduce indentation. No functionality change.Dan Gohman2009-02-201-80/+70
| | | | llvm-svn: 65167
* Fix 80-column violations.Dan Gohman2009-02-201-4/+5
| | | | llvm-svn: 65159
* It's not necessary to check if Base is null here.Dan Gohman2009-02-201-2/+1
| | | | llvm-svn: 65157
* Add a comment about how Imm can be used for loop-variant values.Dan Gohman2009-02-201-1/+2
| | | | llvm-svn: 65147
* Factor address mode matcher out of codegen prepare to make it available to ↵Evan Cheng2009-02-202-643/+594
| | | | | | other passes, e.g. loop strength reduction. llvm-svn: 65134
OpenPOWER on IntegriCloud