summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't merge restore with tail call instruction.Evan Cheng2011-01-252-1/+28
| | | | llvm-svn: 124167
* tblgen/AsmMatcherEmitter: Fix alias handling to honor -match-prefix.Daniel Dunbar2011-01-241-0/+11
| | | | llvm-svn: 124154
* Provide correct registers for EH stuff on ARMAnton Korobeynikov2011-01-241-3/+4
| | | | llvm-svn: 124151
* Support printing exception section into the current one. This is the case ↵Anton Korobeynikov2011-01-241-1/+2
| | | | | | when LSDASection is blank llvm-svn: 124150
* Perhaps a bit too much vertical whitespace.Eric Christopher2011-01-241-2/+0
| | | | llvm-svn: 124148
* [AVX] Add type checking support for vector/subvector type constraints.David Greene2011-01-242-1/+54
| | | | | | | | | This will be used to check patterns referencing a forthcoming INSERT_SUBVECTOR SDNode. INSERT_SUBVECTOR in turn is very useful for matching to VINSERTF128 instructions and complements the already existing EXTRACT_SUBVECTOR SDNode. llvm-svn: 124145
* Speculatively revert r124138.Devang Patel2011-01-242-3/+2
| | | | llvm-svn: 124142
* Jörg Sonnenberger noticed that we were missing this test.Rafael Espindola2011-01-241-0/+9
| | | | llvm-svn: 124139
* Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value ↵Devang Patel2011-01-242-1/+106
| | | | | | intrinisic. llvm-svn: 124138
* Temporarily workaround JM/lencod miscompile (SIGSEGV).Andrew Trick2011-01-241-0/+2
| | | | | | rdar://problem/8893967 llvm-svn: 124137
* Give GetUnderlyingObject a TargetData, to keep it in syncDan Gohman2011-01-249-19/+24
| | | | | | | | | | | with BasicAA's DecomposeGEPExpression, which recently began using a TargetData. This fixes PR8968, though the testcase is awkward to reduce. Also, update several off GetUnderlyingObject's users which happen to have a TargetData handy to pass it in. llvm-svn: 124134
* fix PR8928 by clearing a stale map, patch by Jakub Staszak!Chris Lattner2011-01-241-0/+1
| | | | llvm-svn: 124132
* Testcase for dragonegg commit 124128.Duncan Sands2011-01-242-0/+12
| | | | llvm-svn: 124129
* Handle strings in section names the same way as gas:Rafael Espindola2011-01-242-3/+21
| | | | | | | * If the name is a single string, we remove the quotes * If the name starts without a quote, we include any quotes in the name llvm-svn: 124127
* Add a comment.Dan Gohman2011-01-241-0/+1
| | | | llvm-svn: 124126
* Add another rdar number.Dan Gohman2011-01-241-1/+1
| | | | llvm-svn: 124125
* Support/CommandLine: Fix LookupNearestOption to also search extra option names.Daniel Dunbar2011-01-241-10/+25
| | | | llvm-svn: 124124
* fix a missing shuffle pattern, PR9009. Patch by Artiom Myaskouvskey!Chris Lattner2011-01-242-0/+12
| | | | llvm-svn: 124102
* merge all the "crash tests" into crash.llChris Lattner2011-01-2415-293/+240
| | | | llvm-svn: 124101
* fix PR9017, a bug where we'd assert when promoting in unreachableChris Lattner2011-01-242-0/+23
| | | | | | code. llvm-svn: 124100
* fix PR9015, a crash linking recursive metadata.Chris Lattner2011-01-243-6/+22
| | | | llvm-svn: 124099
* this isn't a memset, we do convert dest[i] to one though :)Chris Lattner2011-01-241-8/+0
| | | | llvm-svn: 124097
* with recent work, we now optimize this into:Chris Lattner2011-01-241-20/+0
| | | | | | | | | | | define i32 @foo(i32 %x) nounwind readnone ssp { entry: %tobool = icmp eq i32 %x, 0 %tmp5 = select i1 %tobool, i32 2, i32 1 ret i32 %tmp5 } llvm-svn: 124091
* enhance SRoA to promote allocas that are used by PHI nodes. This oftenChris Lattner2011-01-242-29/+181
| | | | | | | | | | occurs because instcombine sinks loads and inserts phis. This kicks in on such apps as 175.vpr, eon, 403.gcc, xalancbmk and a bunch of times in spec2006 in some app that uses std::deque. This resolves the last of rdar://7339113. llvm-svn: 124090
* Enhance SRoA to promote allocas that are used by selects in someChris Lattner2011-01-232-5/+190
| | | | | | | | | | | | | | | | | | | | common cases. This triggers a surprising number of times in SPEC2K6 because min/max idioms end up doing this. For example, code from the STL ends up looking like this to SRoA: %202 = load i64* %__old_size, align 8, !tbaa !3 %203 = load i64* %__old_size, align 8, !tbaa !3 %204 = load i64* %__n, align 8, !tbaa !3 %205 = icmp ult i64 %203, %204 %storemerge.i = select i1 %205, i64* %__n, i64* %__old_size %206 = load i64* %storemerge.i, align 8, !tbaa !3 We can now promote both the __n and the __old_size allocas. This addresses another chunk of rdar://7339113, poor codegen on stringswitch. llvm-svn: 124088
* teach Value::isDereferenceablePointer that byval arguments are alwaysChris Lattner2011-01-231-0/+4
| | | | | | dereferencable, noticed by inspection. llvm-svn: 124085
* Add a memset loop that LoopIdiomRecognize doesn't recognize.Anders Carlsson2011-01-231-0/+8
| | | | llvm-svn: 124082
* Simplify some code with no functionality change. Make the test a lot moreNick Lewycky2011-01-232-27/+23
| | | | | | robust against smarter optimizations, using the power of FileCheck. llvm-svn: 124081
* Initialize MCNoExecStack.Rafael Espindola2011-01-231-0/+1
| | | | llvm-svn: 124079
* Add support for the --noexecstack option.Rafael Espindola2011-01-2314-25/+89
| | | | llvm-svn: 124077
* Null initialize a few variables flagged byTed Kremenek2011-01-237-7/+7
| | | | | | | | | | clang's -Wuninitialized-experimental warning. While these don't look like real bugs, clang's -Wuninitialized-experimental analysis is stricter than GCC's, and these fixes have the benefit of being general nice cleanups. llvm-svn: 124073
* Add support for lowercase variants.Rafael Espindola2011-01-232-1/+15
| | | | llvm-svn: 124071
* Enhance SRoA to be more aggressive about scalarization of aggregate allocasChris Lattner2011-01-232-12/+192
| | | | | | | | | | | | that have PHI or select uses of their element pointers. This can often happen when instcombine sinks two loads into a successor, inserting a phi or select. With this patch, we can scalarize the alloca, but the pinned elements are not yet promoted. This is still a win for large aggregates where only one element is used. This fixes rdar://8904039 and part of rdar://7339113 (poor codegen on stringswitch). llvm-svn: 124070
* Convert two std::vectors to SmallVectors for a 3.4% speedup running -scalarreplCameron Zwarich2011-01-231-2/+2
| | | | | | on test-suite + SPEC2000 & SPEC2006. llvm-svn: 124068
* have AllocaInfo store the alloca being inspected, simplifying callers.Chris Lattner2011-01-231-22/+24
| | | | | | No functionality change. llvm-svn: 124067
* Rearrange some code a bit. Change MarkUnsafe to Chris Lattner2011-01-231-27/+29
| | | | | | | | handle the "Transformation preventing inst" printing, so that -scalarrepl -debug will always print the rejected instruction. No functionality change. llvm-svn: 124066
* Convert a std::vector to a SmallVector for another 5.4% speedup on domtree.Cameron Zwarich2011-01-231-2/+2
| | | | llvm-svn: 124065
* remove an old hack that avoided creating MMX datatypes. TheChris Lattner2011-01-232-26/+3
| | | | | | X86 backend has been fixed. llvm-svn: 124064
* Use value ranges to fold ext(trunc) in SCEV when possible.Nick Lewycky2011-01-232-0/+68
| | | | llvm-svn: 124062
* In the simpler version of the link-eval data structure that we use in dominatorCameron Zwarich2011-01-232-38/+23
| | | | | | | | | | | | | computation, the Ancestor field is always set to the Parent, so we can remove the explicit link entirely and merge the Parent and Ancestor fields. Instead of checking for whether an ancestor exists for a node or not, we simply check whether the node has already been processed. This is simpler if Compress is inlined into Eval, so I did that as well. This is about a 3% speedup running -domtree on test-suite + SPEC2000 & SPEC2006, but it also opens up some opportunities for further improvement. llvm-svn: 124061
* Delay the creation of eh_frame so that the user can change the defaults.Rafael Espindola2011-01-238-26/+51
| | | | | | Add support for SHT_X86_64_UNWIND. llvm-svn: 124059
* Remove useless struct fields.Cameron Zwarich2011-01-232-10/+2
| | | | llvm-svn: 124058
* Remove friend declaration for removed function.Cameron Zwarich2011-01-231-5/+0
| | | | llvm-svn: 124057
* Remove more duplicated code.Rafael Espindola2011-01-2312-165/+158
| | | | llvm-svn: 124056
* Convert a std::vector to a SmallVector.Cameron Zwarich2011-01-231-1/+1
| | | | llvm-svn: 124055
* Remove duplicated code.Rafael Espindola2011-01-2312-152/+90
| | | | llvm-svn: 124054
* Simplify some code now that we've removed the more optimal (but slower) versionCameron Zwarich2011-01-231-8/+2
| | | | | | of the link-eval data structure from dominator computation. llvm-svn: 124053
* Have SCEV turn sext(x) into zext(x) when x is s>= 0. This applies many times inNick Lewycky2011-01-221-0/+4
| | | | | | "make check" alone. llvm-svn: 124046
* Add a FIXME explaining the move to a single indirect call bonus per functionEric Christopher2011-01-221-0/+5
| | | | | | that we can change from indirect to direct. llvm-svn: 124045
* Only apply the devirtualization bonus once instead of per-call site in theEric Christopher2011-01-221-2/+6
| | | | | | | | target function. Fixes part of rdar://8546196 llvm-svn: 124044
OpenPOWER on IntegriCloud