aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-09-28Move the dominator verification code out of special code embedded withinDan Gohman
the PassManager code into a regular verifyAnalysis method. Also, reorganize loop verification. Make the LoopPass infrastructure call verifyLoop as needed instead of having LoopInfo::verifyAnalysis check every loop in the function after each looop pass. Add a new command-line argument, -verify-loop-info, to enable the expensive full checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82952 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-28Move this assert to check the condition as soon as it is known.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82951 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-28Extend the StartPassTimer and StopPassTimer functions so that theDan Gohman
code that stops the timer doesn't have to search to find the timer object before it stops the timer. This avoids a lock acquisition and a few other things done with the timer running. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82949 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Use movt/movw pair to materialize 32 bit constants on ARMv6T2+.Anton Korobeynikov
This should be better than single load from constpool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82948 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Fix an old copy+pasto.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82947 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Extract the code for inserting a loop into the loop queue intoDan Gohman
a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27When a loop is deleted, immediately release all of the activeDan Gohman
LoopPasses for that loop. This avoids trouble with the PassManager trying to call verifyAnalysis on them, and frees up some memory sooner rather than later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82945 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Extract the code for releasing a pass into a separate function, andDan Gohman
tidy it up a little. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82944 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Remove the "metadata*" type and simplify the code it complicated. This was onlyNick Lewycky
used to support GlobalVariables storing MDNodes, back when they were derived from Constant before the introduction of NamedMDNode, but never removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82943 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27LBRX no longer has an explicit SrcValueSDNode operand, so the typeDan Gohman
operand is now at index 2, rather than 3. This fixes the "Invalid child # of SDNode!" failures on PowerPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82942 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27simplify some code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82936 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27The bitcast case is not needed here: instcombine turns icmp(bitcast(x), ↵Chris Lattner
null) -> icmp(x, null) already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82935 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27New unit test for the cloning module, which so far only covers cloning ofNick Lewycky
instructions' optimization flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82934 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27calls are already unmovable, malloc doesn't need a special case.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82933 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27calls to external functions are already marked overdefined, special casingChris Lattner
malloc isn't needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82932 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27calls are already handled, malloc doesn't need a special case.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82931 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Round out the API for the new optimization flags.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82930 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27calls are rejected above, no need to special case malloc here.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82929 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27remove special handling of bitcast(malloc), it will be handledChris Lattner
when the loop inspects the bitcast operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27unlike the malloc instruction, "malloc" calls do not claim to be readonly, ↵Chris Lattner
just nounwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82927 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27add a new DirectiveMap stringmap, which allows more efficient dispatchingChris Lattner
to directive handlers and allows for easier extensibility. I only switched a few over for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82926 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Link order: it matters.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82925 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27allow pushing icmps through phis with multiple uses and across critical edges.Chris Lattner
These are important to push up to encourage jump threading. This shrinks 176.gcc a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82923 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Enhance the previous fix for PR4895 to allow more values than justChris Lattner
simple constants for the true/false value of the select. We now do phi translation etc. This really fixes PR4895 :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82917 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27implement PR4895, by making FoldOpIntoPhi handle select conditionsChris Lattner
that are phi nodes. Also tighten up FoldOpIntoPhi to treat constantexpr operands to phis just like other variables, avoiding moving constantexpr computations around. Patch by Daniel Dunbar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82913 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27avoid copying MCAsmInfo by value, add an (extremely low prio) fixme.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82911 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Use explicit structs instead of std::pair to map callee saved regs to spill ↵Tilmann Scheller
slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82909 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Delete a bogus comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82908 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Remove a redundant assert.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82907 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Enable -g with DEBUG_SYMBOLS and --enable-debug-symbols instead ofJeffrey Yasskin
DEBUG_RUNTIME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82906 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Fix SCEVExpander's canonical addrec expansion code to work on loops thatDan Gohman
aren't in canonical loop-simplify form, since it doesn't itself depend on LoopSimplify. This means handling loops without preheaders and loops with multiple backedges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82905 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Add dominates and releaseMemory member functions to PostDominatorTree.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82904 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Grab an LLVM Context from an instruction that exists rather than oneDan Gohman
that is deleted in some situations. This fixes a use-after-free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82903 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Clarify a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82902 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Tell ScalarEvolution to forget everything it knows about a loop beforeDan Gohman
rotating the loop, since loop rotation is a very significant change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Micro-optimize DerivedType::dropAllTypeUses.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Instead of testing whether an instruction dominates the loop preheader,Dan Gohman
test whether it properly dominates the loop header. This is equivalent when the loop has a preheader, and has the advantage of working when the loop doesn't have a preheader. Since IVUsers doesn't Require LoopSimplify, the loop isn't guaranteed to have a preheader. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82899 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Add a properlyDominates member function to ScalarEvolution.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82898 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Remove a redundant #include.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82897 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Avoid using mutex locks if not in multithreaded mode by using a SmartScopedMutexTorok Edwin
in RegisterStatistic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82896 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Enable pre-regalloc load / store multiple pass for Thumb2.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82893 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27rename REG -> REGISTER to make it explicit in the doc. <tt>ify some stuff.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82892 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27implement and document support for filecheck variables. ThisChris Lattner
allows matching and remembering a string and then matching and verifying that the string occurs later in the file. Change X86/xor.ll to use this in some cases where the test was checking for an arbitrary register allocation decision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82891 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Remove dead code from this function and optimize. Update its correspondingNick Lewycky
LangRef entry too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Instruction::clone does not need to take an LLVMContext&. Remove that andNick Lewycky
update all the callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82889 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Filecheckify this one test.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Leave a pointer to the documentation so that people don't end up change one butNick Lewycky
not the other in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82887 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Correct the version numbers to match those actually tested for byNick Lewycky
autoconf/AutoRegen.sh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82886 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Move the integer type out of 'derived' and into 'primitive'. This permits usNick Lewycky
to explain that derived types are all composed of other types, which primitive types aren't. Without moving integer out of derived, this wouldn't be true. Perform a few trivial cleanups; 'i1' went from a link to #t_primitive to #t_integer (a holdover from when it was a bool type I suppose). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82884 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26remove support for "NoSub" from regex. It seems like a minor optimizationChris Lattner
and makes the API more annoying. Add a Regex::getNumMatches() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82877 91177308-0d34-0410-b5e6-96231b3b80d8