summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Make getUniqueExitBlocks's precondition assert more precise, toDan Gohman2009-12-111-3/+3
| | | | | | avoid spurious failures. This fixes PR5758. llvm-svn: 91147
* Fix the result type of SELECT nodes lowered from Select instructions withDan Gohman2009-12-111-1/+1
| | | | | | aggregate return values. This fixes PR5754. llvm-svn: 91145
* Honour setHasCalls() set from isel.Anton Korobeynikov2009-12-112-2/+7
| | | | | | | This is used in some weird cases like general dynamic TLS model. This fixes PR5723 llvm-svn: 91144
* Store Register Exclusive should leave the source register Inst{3-0} unspecified.Johnny Chen2009-12-111-1/+1
| | | | llvm-svn: 91143
* Update properties.Jim Grosbach2009-12-111-2/+2
| | | | llvm-svn: 91140
* Revert part of r91101 which was causing an infinite loop in the self-hostingBill Wendling2009-12-111-3/+8
| | | | | | build bots. llvm-svn: 91113
* Add utility method for determining whether a function argumentDuncan Sands2009-12-111-0/+7
| | | | | | has the 'nest' attribute. llvm-svn: 91109
* Add support to 3-addressify 16-bit instructions.Evan Cheng2009-12-112-88/+135
| | | | llvm-svn: 91104
* Coalesce insert_subreg undef, x first to avoid phase ordering issue.Evan Cheng2009-12-112-5/+20
| | | | llvm-svn: 91103
* Address comments on last patch:Bill Wendling2009-12-111-13/+8
| | | | | | | | - Loosen the restrictions when checking of it branches to a landing pad. - Make the loop more efficient by checking the '.insert' return value. - Do cheaper checks first. llvm-svn: 91101
* A machine basic block may end in an unconditional branch, however it may haveBill Wendling2009-12-111-7/+36
| | | | | | | | | | | | | more than one successor. Normally, these extra successors are dead. However, some of them may branch to exception handling landing pads. If we remove those successors, then the landing pads could go away if all predecessors to it are removed. Before, it was checking if the direct successor was the landing pad. But it could be the result of jumping through multiple basic blocks to get to it. If we were to only check for the existence of an EH_LABEL in the basic block and not remove successors if it's in there, then it could stop actually dead basic blocks from being removed. llvm-svn: 91092
* Rough first pass at compare_and_swap atomic builtins for ARM mode. Work in ↵Jim Grosbach2009-12-115-0/+152
| | | | | | progress. llvm-svn: 91090
* If VariableDIe is not created (may be because global was optimzed away) then ↵Devang Patel2009-12-101-0/+2
| | | | | | do not try to use the variable die. llvm-svn: 91077
* It's not safe to coalesce a move where src and dst registers have different ↵Evan Cheng2009-12-101-1/+7
| | | | | | | | subregister indices. e.g.: %reg16404:1<def> = MOV8rr %reg16412:2<kill> llvm-svn: 91061
* Refactor code that finds context for a given die.Devang Patel2009-12-102-42/+24
| | | | | | Create global variable DIEs after creating subprogram DIEs. This allows function level static variable's to find their context at the time of DIE creation. llvm-svn: 91055
* Add instruction encoding for DMB/DSBJim Grosbach2009-12-101-3/+11
| | | | llvm-svn: 91053
* Refactor.Devang Patel2009-12-102-20/+39
| | | | llvm-svn: 91051
* Also attempt trivial coalescing for live intervals that end in a copy.Jakob Stoklund Olesen2009-12-102-74/+111
| | | | | | | | | | | | | | | The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch is more conservative than r90502, and does not break 483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled by default, and can be enabled with the -trivial-coalesce-ends option. llvm-svn: 91049
* Comparing std::string with NULL is a bad idea, so just check whether its empty.Torok Edwin2009-12-101-1/+1
| | | | | | | This code was crashing always with oprofile enabled, since it tried to create a StringRef out of NULL, which run strlen on NULL. llvm-svn: 91046
* Make sure the immediate dominator isn't NULL through iterationsEric Christopher2009-12-101-5/+6
| | | | | | | of the loop. We could get to this condition via indirect branches. llvm-svn: 91009
* Fix PR5744, a case where we were getting the pointer size instead of theChris Lattner2009-12-101-1/+1
| | | | | | | | value size. This only manifested when memdep inprecisely returns clobber, which is do to a caching issue in the PR5744 testcase. We can 'efficiently emulate' this by using '-no-aa' llvm-svn: 91004
* Add memory barrier intrinsic support for ARM. Moving towards adding the ↵Jim Grosbach2009-12-103-1/+49
| | | | | | atomic operations intrinsics. llvm-svn: 91003
* allow this to build when the #if 0's are enabled. No functionality change.Chris Lattner2009-12-101-6/+2
| | | | llvm-svn: 90999
* Dereference loopHeader after checking for null rather than before.Dan Gohman2009-12-091-1/+2
| | | | llvm-svn: 90990
* Optimize splat of a scalar load into a shuffle of a vector load when it's ↵Evan Cheng2009-12-093-4/+93
| | | | | | | | | | | | legal. e.g. vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0> => vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1> iff ptr is 16-byte aligned (or can be made into 16-byte aligned). llvm-svn: 90984
* Reuse the Threshold value to size these containers because it'sDan Gohman2009-12-091-2/+2
| | | | | | currently somewhat convenient for them to have the same value. llvm-svn: 90980
* Reapply r90858, a cleanup patch.Devang Patel2009-12-092-166/+81
| | | | llvm-svn: 90979
* fix hte last remaining known (by me) phi translation bug. When we reanalyzeChris Lattner2009-12-091-6/+9
| | | | | | | clobbers to forward pieces of large stores to small loads, we need to consider the properly phi translated pointer in the store block. llvm-svn: 90978
* change GetStoreValueForLoad to use IRBuilder, which is cleaner andChris Lattner2009-12-091-7/+7
| | | | | | implicitly constant folds. llvm-svn: 90977
* Fix a comment.Bob Wilson2009-12-091-1/+1
| | | | llvm-svn: 90975
* Add a minor optimization: if we haven't changed the operands of anChris Lattner2009-12-091-0/+4
| | | | | | | | | | add, there is no need to scan the world to find the same add again. This invalidates the previous testcase, which wasn't wonderful anyway, because it needed a run of instcombine to permute the use-lists in just the right way to before GVN was run (so it was really fragile). Not a big loss. llvm-svn: 90973
* fix PR5733, a case where we'd replace an add with a lexically identical Chris Lattner2009-12-091-1/+2
| | | | | | binary operator that wasn't an add. In this case, a xor. Whoops. llvm-svn: 90971
* <rdar://problem/7453528>. Track only physical registers that are valid for ↵David Goodwin2009-12-094-17/+28
| | | | | | the target. llvm-svn: 90970
* change AnalyzeLoadFromClobberingMemInst/AnalyzeLoadFromClobberingStoreChris Lattner2009-12-091-13/+22
| | | | | | to require the load ty/ptr to be passed in, no functionality change. llvm-svn: 90960
* change AnalyzeLoadFromClobberingWrite and clients to pass in type Chris Lattner2009-12-091-10/+12
| | | | | | and pointer instead of the load. No functionality change. llvm-svn: 90959
* enhance NonLocalDepEntry to keep the per-block phi translated addressChris Lattner2009-12-091-15/+17
| | | | | | of the query. llvm-svn: 90958
* DeltaAlgorithm: Add a virtual destructor and home.Daniel Dunbar2009-12-091-0/+3
| | | | llvm-svn: 90957
* change NonLocalDepEntry from being a typedef for an std::pair to be itsChris Lattner2009-12-092-63/+63
| | | | | | own small class. No functionality change. llvm-svn: 90956
* Added a new "splitting" spiller.Lang Hames2009-12-095-22/+339
| | | | | | | | | | | | | When a call is placed to spill an interval this spiller will first try to break the interval up into its component values. Single value intervals and intervals which have already been split (or are the result of previous splits) are spilled by the default spiller. Splitting intervals as described above may improve the performance of generated code in some circumstances. This work is experimental however, and it still miscompiles many benchmarks. It's not recommended for general use yet. llvm-svn: 90951
* Remove spurious extern.Daniel Dunbar2009-12-091-1/+1
| | | | llvm-svn: 90937
* add some aborts to #if 0's.Chris Lattner2009-12-091-0/+2
| | | | llvm-svn: 90929
* Switch GVN and memdep to use PHITransAddr, which correctly handlesChris Lattner2009-12-092-320/+56
| | | | | | | | | | | | | | | | | | | | | | | phi translation of complex expressions like &A[i+1]. This has the following benefits: 1. The phi translation logic is all contained in its own class with a strong interface and verification that it is self consistent. 2. The logic is more correct than before. Previously, if intermediate expressions got PHI translated, we'd miss the update and scan for the wrong pointers in predecessor blocks. @phi_trans2 is a testcase for this. 3. We have a lot less code in memdep. We can handle phi translation across blocks of things like @phi_trans3, which is pretty insane :). This patch should fix the miscompiles of 255.vortex, and I tested it with a bootstrap of llvm-gcc, llvm-test and dejagnu of course. llvm-svn: 90926
* Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 ↵Evan Cheng2009-12-092-11/+7
| | | | | | isl lowering code. llvm-svn: 90925
* Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's ↵Evan Cheng2009-12-094-45/+45
| | | | | | primary used by selectdag passes. llvm-svn: 90922
* fix a nasty variable that was shadowing the real CurBB but with the wrong value.Chris Lattner2009-12-091-1/+0
| | | | llvm-svn: 90920
* Infer alignment for non-fixed stack object.Evan Cheng2009-12-091-3/+4
| | | | llvm-svn: 90919
* Add const qualifier.Evan Cheng2009-12-091-1/+1
| | | | llvm-svn: 90918
* Refactor InferAlignment out of DAGCombine.Evan Cheng2009-12-092-45/+46
| | | | llvm-svn: 90917
* fix many input tracking bugs.Chris Lattner2009-12-091-33/+30
| | | | llvm-svn: 90915
* Fix a typo in a comment, and adjust SmallSet and SmallVector sizes,Dan Gohman2009-12-091-7/+7
| | | | | | that Chris noticed. llvm-svn: 90910
OpenPOWER on IntegriCloud