Commits

Show all
Author Commit Message Labels Comments Date
Dan Gohman
Micro-optimize a few hot spots.
Tags
2 tags
Evan Cheng
Use .set expression for x86 pic jump table reference to reduce assembly relocation. rdar://7738756
Dan Gohman
Add fast paths to ScalarEvolution::getSizeOf and getOffsetOf, as they're used a lot by getNodeForGEP, which can be called a lot. This speeds up -iv-users by around 15% on several testcases.
Bill Wendling
Third time's a charm...
Bill Wendling
Genericize the label test.
Bill Wendling
Correct test to test what I mean it to test.
Bill Wendling
Micro-optimization: If we have this situation: jCC L1 jmp L2 L1: ... L2: ... We can get a small performance boost by emitting this instead: jnCC L2 L1: ... L2: ... This testcase shows an example of this: float func(float x, float y) { double product = (double)x * y; if (product == 0.0) return product; return product - 1.0; }
Dan Gohman
Simplify this code.
Sean Callanan
Build system fixes. llvm-mc depends on libEnhancedDisassembly, so we now build the static library in all cases (although the shared library is only built when requested/possible). Also, fixed a bug where edis wasn't properly initializing the targets it uses.
Dan Gohman
Suppress LinearFunctionTestReplace when the computed backedge-taken expression is a UDiv and it doesn't appear that the UDiv came from the user's source. ScalarEvolution has recently figured out how to compute a tripcount expression for the inner loop in SingleSource/Benchmarks/Shootout/sieve.c, using a udiv. Emitting a udiv instruction dramatically slows down the enclosing loop.
Sean Callanan
Bug fix: made the enhanced disassembler's link flags work properly when EDIS_VERSION is defined
Sean Callanan
Bug fix: included System/Types.h instead of inttypes.h to allow building on Windows.
Sean Callanan
Second try at integrating the edis tester. This time I use the LIBS variable, which is not subject to a %.a -> -l% transformation, to link llvm-mc against libEnhancedDisassembly. llvm-mc -edis works the same as llvm-mc -disassemble, but outputs tokens and operands.
Johnny Chen
Fixed a crasher in arm disassembler within ARMInstPrinter.cpp after calling ARM_AM::getSoImmVal(V) with a legitimate so_imm value: #245 rotate right by 2. Introduce ARM_AM::getSOImmValOneOrNoRotate(unsigned Arg) which is called from ARMInstPrinter.cpp's printSOImm() function, replacing ARM_AM::getSOImmVal(V). [12:44:43] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $ gdb Debug/bin/llvm-mc GNU gdb 6.3.50-20050815 (Apple version gdb-1346) (Fri Sep 18 20:40:51 UTC 2009) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the con…
Dan Gohman
Remove a #include.
Tobias Grosser
Remove unneeded debug in PostDominator runOnFunction() The information is already available with "opt -analyze". The DominatorTree does also not have this in its runOnFunction. So they behave now more consistent.
Tobias Grosser
Remove dead code in the dotty dominance tree printer. This template is not needed anymore as it was replaced by the DOTGraphTraitsViewer.
Benjamin Kramer
Boolify.
Benjamin Kramer
Plug trivial leak.
Dan Gohman
Delete this code, which is no longer needed.
Dan Gohman
Move the EliminateIVUsers call back out to its original location. Now that a ScalarEvolution bug with overflow handling is fixed, the normal analysis code will automatically decline to operate on the icmp instructions which are responsible for the loop exit.
Dan Gohman
Generalize ScalarEvolution's PHI analysis to handle loops that don't have preheaders or dedicated exit blocks, as clients may not otherwise need to run LoopSimplify.
Dan Gohman
Rewrite the overflow checking in the get{Signed,Unsigned}Range code for AddRecs so that it checks for overflow in the computation that it is performing, rather than just checking hasNo{Signed,Unsigned}Wrap, since those flags are for a different computation. This fixes a bug that impacts an upcoming change.
Dan Gohman
Use RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons, instead of deleting just the user. This makes it more consistent with other code in IndVarSimplify, and theoretically can eliminate more users earlier.
Evan Cheng
Enable post regalloc machine licm by default.
Nick Lewycky
Remove use of exceptions from bugpoint. No deliberate functionality change!
Eric Christopher
Verify function prototypes before trying to optimize functions. We also need TargetData, just return false if we don't have it. Update testcases accordingly. Fixes PR6807.
Dan Gohman
Remove unnecessary parens.
Dan Gohman
Minor code simplification.
Dan Gohman
Re-apply r101000, with a fix: Don't eliminate an icmp which is part of the loop exit test. This usually doesn't come up for a variety of reasons, but it isn't impossible, so make IndVarSimplify handle it conservatively.
  1. Prev
  2. Next