summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Specially handle fields, elements, and ivars inTed Kremenek2009-09-271-5/+9
| | | | | | | RegionStoreManager::InvalidateRegion() by only removing their old binding, not conjuring a new symbol. llvm-svn: 82939
* simplify some code.Chris Lattner2009-09-271-2/+2
| | | | llvm-svn: 82936
* The bitcast case is not needed here: instcombine turns icmp(bitcast(x), ↵Chris Lattner2009-09-271-24/+7
| | | | | | null) -> icmp(x, null) already. llvm-svn: 82935
* New unit test for the cloning module, which so far only covers cloning ofNick Lewycky2009-09-274-1/+120
| | | | | | instructions' optimization flags. llvm-svn: 82934
* calls are already unmovable, malloc doesn't need a special case.Chris Lattner2009-09-271-2/+1
| | | | llvm-svn: 82933
* calls to external functions are already marked overdefined, special casingChris Lattner2009-09-271-5/+1
| | | | | | malloc isn't needed. llvm-svn: 82932
* calls are already handled, malloc doesn't need a special case.Chris Lattner2009-09-271-3/+1
| | | | llvm-svn: 82931
* Round out the API for the new optimization flags.Nick Lewycky2009-09-273-4/+32
| | | | llvm-svn: 82930
* calls are rejected above, no need to special case malloc here.Chris Lattner2009-09-271-3/+2
| | | | llvm-svn: 82929
* remove special handling of bitcast(malloc), it will be handledChris Lattner2009-09-271-5/+4
| | | | | | when the loop inspects the bitcast operand. llvm-svn: 82928
* unlike the malloc instruction, "malloc" calls do not claim to be readonly, ↵Chris Lattner2009-09-271-1/+1
| | | | | | just nounwind. llvm-svn: 82927
* add a new DirectiveMap stringmap, which allows more efficient dispatchingChris Lattner2009-09-272-23/+35
| | | | | | | | to directive handlers and allows for easier extensibility. I only switched a few over for now. llvm-svn: 82926
* Link order: it matters.Nick Lewycky2009-09-271-1/+1
| | | | llvm-svn: 82925
* Add FIXME comment.Ted Kremenek2009-09-271-0/+4
| | | | llvm-svn: 82924
* allow pushing icmps through phis with multiple uses and across critical edges.Chris Lattner2009-09-271-8/+23
| | | | | | These are important to push up to encourage jump threading. This shrinks 176.gcc a bit. llvm-svn: 82923
* Fix:Ted Kremenek2009-09-277-64/+111
| | | | | | | | | | | | | | | | <rdar://problem/6914474> checker doesn't realize that variable might have been assigned if a pointer to that variable was passed to another function via a structure The problem here was the RegionStoreManager::InvalidateRegion didn't invalidate the bindings of invalidated regions. This required a rewrite of this method using a worklist. As part of this fix, changed ValueManager::getConjuredSymbolVal() to require a 'void*' SymbolTag argument. This tag is used to differentiate two different symbols created at the same location. llvm-svn: 82920
* Enhance the previous fix for PR4895 to allow more values than justChris Lattner2009-09-272-17/+53
| | | | | | | simple constants for the true/false value of the select. We now do phi translation etc. This really fixes PR4895 :) llvm-svn: 82917
* Mangle dependent name expressions. Fixes PR5063.Anders Carlsson2009-09-272-0/+38
| | | | llvm-svn: 82915
* implement PR4895, by making FoldOpIntoPhi handle select conditionsChris Lattner2009-09-272-11/+64
| | | | | | | | | | 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. llvm-svn: 82913
* Use mangleTemplatePrefix when we know that we're mangling a nested template ↵Anders Carlsson2009-09-272-2/+12
| | | | | | name. llvm-svn: 82912
* avoid copying MCAsmInfo by value, add an (extremely low prio) fixme.Chris Lattner2009-09-272-5/+3
| | | | llvm-svn: 82911
* CodeGen for try statements. (We just emit the body for now).Anders Carlsson2009-09-273-4/+16
| | | | llvm-svn: 82910
* Use explicit structs instead of std::pair to map callee saved regs to spill ↵Tilmann Scheller2009-09-273-160/+166
| | | | | | slots. llvm-svn: 82909
* Delete a bogus comment.Dan Gohman2009-09-271-1/+0
| | | | llvm-svn: 82908
* Remove a redundant assert.Dan Gohman2009-09-271-1/+0
| | | | llvm-svn: 82907
* Enable -g with DEBUG_SYMBOLS and --enable-debug-symbols instead ofJeffrey Yasskin2009-09-274-27/+61
| | | | | | DEBUG_RUNTIME. llvm-svn: 82906
* Fix SCEVExpander's canonical addrec expansion code to work on loops thatDan Gohman2009-09-271-19/+12
| | | | | | | | 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. llvm-svn: 82905
* Add dominates and releaseMemory member functions to PostDominatorTree.Dan Gohman2009-09-271-0/+12
| | | | llvm-svn: 82904
* Grab an LLVM Context from an instruction that exists rather than oneDan Gohman2009-09-271-1/+1
| | | | | | that is deleted in some situations. This fixes a use-after-free. llvm-svn: 82903
* Clarify a comment.Dan Gohman2009-09-271-1/+2
| | | | llvm-svn: 82902
* Tell ScalarEvolution to forget everything it knows about a loop beforeDan Gohman2009-09-271-0/+5
| | | | | | rotating the loop, since loop rotation is a very significant change. llvm-svn: 82901
* Micro-optimize DerivedType::dropAllTypeUses.Dan Gohman2009-09-271-1/+2
| | | | llvm-svn: 82900
* Instead of testing whether an instruction dominates the loop preheader,Dan Gohman2009-09-271-3/+3
| | | | | | | | | 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. llvm-svn: 82899
* Add a properlyDominates member function to ScalarEvolution.Dan Gohman2009-09-273-0/+46
| | | | llvm-svn: 82898
* Remove a redundant #include.Dan Gohman2009-09-271-1/+0
| | | | llvm-svn: 82897
* Avoid using mutex locks if not in multithreaded mode by using a SmartScopedMutexTorok Edwin2009-09-271-2/+2
| | | | | | in RegisterStatistic. llvm-svn: 82896
* CMake generate VS2008 project and CLang and LLVM compile without problem on ↵Cedric Venet2009-09-271-2/+1
| | | | | | VS2008. Remove obsolete remark llvm-svn: 82895
* Handle Eli remark on mingw __declspec macro definitionCedric Venet2009-09-271-1/+1
| | | | llvm-svn: 82894
* Enable pre-regalloc load / store multiple pass for Thumb2.Evan Cheng2009-09-274-67/+114
| | | | llvm-svn: 82893
* rename REG -> REGISTER to make it explicit in the doc. <tt>ify some stuff.Chris Lattner2009-09-271-8/+8
| | | | llvm-svn: 82892
* implement and document support for filecheck variables. ThisChris Lattner2009-09-273-60/+228
| | | | | | | | | | 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. llvm-svn: 82891
* Remove dead code from this function and optimize. Update its correspondingNick Lewycky2009-09-272-24/+10
| | | | | | LangRef entry too. llvm-svn: 82890
* Instruction::clone does not need to take an LLVMContext&. Remove that andNick Lewycky2009-09-2716-109/+100
| | | | | | update all the callers. llvm-svn: 82889
* Filecheckify this one test.Nick Lewycky2009-09-271-6/+7
| | | | llvm-svn: 82888
* Leave a pointer to the documentation so that people don't end up change one butNick Lewycky2009-09-271-0/+2
| | | | | | not the other in the future. llvm-svn: 82887
* Correct the version numbers to match those actually tested for byNick Lewycky2009-09-271-3/+3
| | | | | | autoconf/AutoRegen.sh. llvm-svn: 82886
* Look for substitutions when mangling TypenameTypes.Anders Carlsson2009-09-272-3/+21
| | | | llvm-svn: 82885
* Move the integer type out of 'derived' and into 'primitive'. This permits usNick Lewycky2009-09-271-49/+51
| | | | | | | | | | 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). llvm-svn: 82884
* Better template parameter type mangling.Anders Carlsson2009-09-272-11/+26
| | | | llvm-svn: 82883
* Mangle std::basic_string<char, std::char_traits<char>, std::allocator<char> ↵Anders Carlsson2009-09-272-3/+75
| | | | | | > as Ss. llvm-svn: 82882
OpenPOWER on IntegriCloud