aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine/getelementptr.ll
AgeCommit message (Collapse)Author
2011-07-31Add a small gep optimization I noticed was missing while reading some IL.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136585 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-11Don't duplicate the work done by a gep into a "bitcast" if the gep hasRafael Espindola
more than one use. Fixes PR10322. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134883 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-09Land the long talked about "type system rewrite" patch. ThisChris Lattner
patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134829 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17manually upgrade a bunch of tests to modern syntax, and remove some thatChris Lattner
are either unreduced or only test old syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133228 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Add a testcase for getelementptr index promotion.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104944 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-01Generalize target-independent folding rules for sizeof to handle moreDan Gohman
cases, and implement target-independent folding rules for alignof and offsetof. Also, reassociate reassociative operators when it leads to more folding. Generalize ScalarEvolution's isOffsetOf to recognize offsetof on arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr to getOffsetOfExpr, for consistency with analagous ConstantExpr routines. Make the target-dependent folder promote GEP array indices to pointer-sized integers, to make implicit casting explicit and exposed to subsequent folding. And add a bunch of testcases for this new functionality, and a bunch of related existing functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94987 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-29Teach ConstantFolding to do a better job when folding gep(bitcast).Nick Lewycky
This permits the devirtualization of llvm.org/PR3100#c9 when compiled by clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90099 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-17Autoupgrade malloc insts to malloc calls.Victor Hernandez
Update testcases that rely on malloc insts being present. Also prematurely remove MallocInst handling from IndMemRemoval and RaiseAllocations to help pass tests in this incremental step. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84292 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-25Revert 82694 "Auto-upgrade malloc instructions to malloc calls." because it ↵Victor Hernandez
causes regressions in the nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82784 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-24Auto-upgrade malloc instructions to malloc calls.Victor Hernandez
Reviewed by Devang Patel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82694 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11Change tests from "opt %s" to "opt < %s" so that opt doesn't see theDan Gohman
input filename so that opt doesn't print the input filename in the output so that grep lines in the tests don't unintentionally match strings in the input filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81537 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11Teach lib/VMCore/ConstantFold.cpp how to set the inbounds keyword andDan Gohman
how to fold notionally-out-of-bounds array getelementptr indices instead of just doing these in lib/Analysis/ConstantFolding.cpp, because it can be done in a fairly general way without TargetData, and because not all constants are visited by lib/Analysis/ConstantFolding.cpp. This enables more constant folding. Also, set the "inbounds" flag when the getelementptr indices are one-past-the-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81483 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10Factor out the code for checking that all indices in a getelementptr areDan Gohman
within the notional bounds of the static type of the getelementptr (which is not the same as "inbounds") from GlobalOpt into a utility routine, and use it in ConstantFold.cpp to check whether there are any mis-behaved indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81478 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-08Use opt -S instead of piping bitcode output through llvm-dis.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81257 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-08Change these tests to feed the assembly files to opt directly, insteadDan Gohman
of using llvm-as, now that opt supports this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81226 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-30suck a bunch more gep tests into getelementptr.ll and filecheckize them all.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-30consolodate various GEP tests into getelementptr.ll using filecheck.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80514 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-30convert to filecheckChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80510 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-25Byebye llvm-upgrade!Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48762 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15For PR1319:Reid Spencer
Make use of the END. facility on all files > 1K so that we aren't wasting CPU cycles searching for RUN: lines that we'll never find. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36059 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-14For PR1319:Reid Spencer
Upgrade tests to work with new llvm.exp version of llvm_runtest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36013 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-25new testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35340 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-02Use the llvm-upgrade program to upgrade llvm assembly.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32115 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-23Promote GEP ubyte indices to uint. Backwards compatibility for 1.2 andReid Spencer
older features will be dropped soon and these test cases must not rely on the upgrade capability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31896 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-01new testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21646 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-25rename fnChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21540 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-25new testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21539 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-16New testcase, rework testcases to fail if there are any gep's other than thoseChris Lattner
involving %B instead of allowing any geps except %A's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17065 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-28The instruction combining pass removes dead instructions, there is no needChris Lattner
to run the die pass after it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11942 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-16Renamed `as' => `llvm-as', `dis' => `llvm-dis', `link' => `llvm-link'.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8558 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-28Remove usage of grep-not scriptChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6966 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-28Convert scripts from using explicit control flow to use the new grep-not scriptChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6955 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-21Add testcase for reason that typesafety of power is being brokenChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6836 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05Add testcase for new instcombine xformChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5703 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04Add new getelementptr elimination testChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4535 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17Convert to use long indexes instead of uintChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3781 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-16Add new testcase for gep instruction -> get constexpr promotionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3364 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02These tests should not run -dce pass to cleanup instcombine.Chris Lattner
If instcombine is making dead instructions, ALL that should be used is -die git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3221 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02Change test to really test the cases we can hitChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3219 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-02Check another caseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2424 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18Check in the first test: make sure getelementptr gets foldedChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2288 91177308-0d34-0410-b5e6-96231b3b80d8