oota-llvm.git
14 years agoRemove a broken, unused header
Douglas Gregor [Thu, 10 Dec 2009 19:52:22 +0000 (19:52 +0000)]
Remove a broken, unused header

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91058 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRefactor code that finds context for a given die.
Devang Patel [Thu, 10 Dec 2009 19:14:49 +0000 (19:14 +0000)]
Refactor code that finds context for a given die.
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91055 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd instruction encoding for DMB/DSB
Jim Grosbach [Thu, 10 Dec 2009 18:35:32 +0000 (18:35 +0000)]
Add instruction encoding for DMB/DSB

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91053 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRefactor.
Devang Patel [Thu, 10 Dec 2009 18:05:33 +0000 (18:05 +0000)]
Refactor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91051 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAlso attempt trivial coalescing for live intervals that end in a copy.
Jakob Stoklund Olesen [Thu, 10 Dec 2009 17:48:32 +0000 (17:48 +0000)]
Also attempt trivial coalescing for live intervals that end in a copy.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91049 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoComparing std::string with NULL is a bad idea, so just check whether its empty.
Torok Edwin [Thu, 10 Dec 2009 10:01:47 +0000 (10:01 +0000)]
Comparing std::string with NULL is a bad idea, so just check whether its empty.

This code was crashing always with oprofile enabled, since it tried to create a StringRef
out of NULL, which run strlen on NULL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91046 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake sure the immediate dominator isn't NULL through iterations
Eric Christopher [Thu, 10 Dec 2009 00:25:41 +0000 (00:25 +0000)]
Make sure the immediate dominator isn't NULL through iterations
of the loop. We could get to this condition via indirect
branches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91009 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix PR5744, a case where we were getting the pointer size instead of the
Chris Lattner [Thu, 10 Dec 2009 00:11:45 +0000 (00:11 +0000)]
Fix PR5744, a case where we were getting the pointer size instead of the
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'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91004 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd memory barrier intrinsic support for ARM. Moving towards adding the atomic operat...
Jim Grosbach [Thu, 10 Dec 2009 00:11:09 +0000 (00:11 +0000)]
Add memory barrier intrinsic support for ARM. Moving towards adding the atomic operations intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91003 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoallow this to build when the #if 0's are enabled. No functionality change.
Chris Lattner [Thu, 10 Dec 2009 00:04:46 +0000 (00:04 +0000)]
allow this to build when the #if 0's are enabled.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90999 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDereference loopHeader after checking for null rather than before.
Dan Gohman [Wed, 9 Dec 2009 22:55:01 +0000 (22:55 +0000)]
Dereference loopHeader after checking for null rather than before.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90990 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix test.
Evan Cheng [Wed, 9 Dec 2009 22:24:42 +0000 (22:24 +0000)]
Fix test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90988 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoOptimize splat of a scalar load into a shuffle of a vector load when it's legal....
Evan Cheng [Wed, 9 Dec 2009 21:00:30 +0000 (21:00 +0000)]
Optimize splat of a scalar load into a shuffle of a vector load when it's 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).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90984 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoReuse the Threshold value to size these containers because it's
Dan Gohman [Wed, 9 Dec 2009 18:48:53 +0000 (18:48 +0000)]
Reuse the Threshold value to size these containers because it's
currently somewhat convenient for them to have the same value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90980 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoReapply r90858, a cleanup patch.
Devang Patel [Wed, 9 Dec 2009 18:24:21 +0000 (18:24 +0000)]
Reapply r90858, a cleanup patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90979 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix hte last remaining known (by me) phi translation bug. When we reanalyze
Chris Lattner [Wed, 9 Dec 2009 18:21:46 +0000 (18:21 +0000)]
fix hte last remaining known (by me) phi translation bug.  When we reanalyze
clobbers to forward pieces of large stores to small loads, we need to consider
the properly phi translated pointer in the store block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90978 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agochange GetStoreValueForLoad to use IRBuilder, which is cleaner and
Chris Lattner [Wed, 9 Dec 2009 18:13:28 +0000 (18:13 +0000)]
change GetStoreValueForLoad to use IRBuilder, which is cleaner and
implicitly constant folds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90977 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a comment.
Bob Wilson [Wed, 9 Dec 2009 18:05:27 +0000 (18:05 +0000)]
Fix a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90975 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd a minor optimization: if we haven't changed the operands of an
Chris Lattner [Wed, 9 Dec 2009 17:27:45 +0000 (17:27 +0000)]
Add a minor optimization: if we haven't changed the operands of an
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90973 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd note about loadable modules on windows.
Anton Korobeynikov [Wed, 9 Dec 2009 17:26:02 +0000 (17:26 +0000)]
Add note about loadable modules on windows.
Patch by Gregory Petrosyan!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90972 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix PR5733, a case where we'd replace an add with a lexically identical
Chris Lattner [Wed, 9 Dec 2009 17:18:49 +0000 (17:18 +0000)]
fix PR5733, a case where we'd replace an add with a lexically identical
binary operator that wasn't an add.  In this case, a xor.  Whoops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90971 91177308-0d34-0410-b5e6-96231b3b80d8

14 years ago<rdar://problem/7453528>. Track only physical registers that are valid for the target.
David Goodwin [Wed, 9 Dec 2009 17:18:22 +0000 (17:18 +0000)]
<rdar://problem/7453528>. Track only physical registers that are valid for the target.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90970 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomerge crash-2.ll into crash.ll
Chris Lattner [Wed, 9 Dec 2009 17:17:26 +0000 (17:17 +0000)]
merge crash-2.ll into crash.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90969 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSilence conversion warning from 64 to 32-bit.
Eric Christopher [Wed, 9 Dec 2009 08:29:32 +0000 (08:29 +0000)]
Silence conversion warning from 64 to 32-bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90962 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agochange AnalyzeLoadFromClobberingMemInst/AnalyzeLoadFromClobberingStore
Chris Lattner [Wed, 9 Dec 2009 07:37:07 +0000 (07:37 +0000)]
change AnalyzeLoadFromClobberingMemInst/AnalyzeLoadFromClobberingStore
to require the load ty/ptr to be passed in, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90960 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agochange AnalyzeLoadFromClobberingWrite and clients to pass in type
Chris Lattner [Wed, 9 Dec 2009 07:34:10 +0000 (07:34 +0000)]
change AnalyzeLoadFromClobberingWrite and clients to pass in type
and pointer instead of the load.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90959 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoenhance NonLocalDepEntry to keep the per-block phi translated address
Chris Lattner [Wed, 9 Dec 2009 07:31:04 +0000 (07:31 +0000)]
enhance NonLocalDepEntry to keep the per-block phi translated address
of the query.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90958 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDeltaAlgorithm: Add a virtual destructor and home.
Daniel Dunbar [Wed, 9 Dec 2009 07:19:48 +0000 (07:19 +0000)]
DeltaAlgorithm: Add a virtual destructor and home.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90957 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agochange NonLocalDepEntry from being a typedef for an std::pair to be its
Chris Lattner [Wed, 9 Dec 2009 07:08:01 +0000 (07:08 +0000)]
change NonLocalDepEntry from being a typedef for an std::pair to be its
own small class.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90956 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdded a new "splitting" spiller.
Lang Hames [Wed, 9 Dec 2009 05:39:12 +0000 (05:39 +0000)]
Added a new "splitting" spiller.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90951 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove spurious extern.
Daniel Dunbar [Wed, 9 Dec 2009 03:26:33 +0000 (03:26 +0000)]
Remove spurious extern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90937 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove unneeded ';' and a class/struct mismatch (noticed by clang).
Daniel Dunbar [Wed, 9 Dec 2009 02:58:09 +0000 (02:58 +0000)]
Remove unneeded ';' and a class/struct mismatch (noticed by clang).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90934 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agothe code in GVN that tries to forward large loads to small
Chris Lattner [Wed, 9 Dec 2009 02:43:05 +0000 (02:43 +0000)]
the code in GVN that tries to forward large loads to small
stores is not phi translating, thus it miscompiles really
crazy testcases.  This is from inspection, I haven't seen
this in the wild.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90930 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd some aborts to #if 0's.
Chris Lattner [Wed, 9 Dec 2009 02:41:54 +0000 (02:41 +0000)]
add some aborts to #if 0's.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90929 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSwitch GVN and memdep to use PHITransAddr, which correctly handles
Chris Lattner [Wed, 9 Dec 2009 01:59:31 +0000 (01:59 +0000)]
Switch GVN and memdep to use PHITransAddr, which correctly handles
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90926 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTeach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl...
Evan Cheng [Wed, 9 Dec 2009 01:53:58 +0000 (01:53 +0000)]
Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl lowering code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90925 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove tests that are not suitable anymore. Plus they are not testing the original...
Devang Patel [Wed, 9 Dec 2009 01:46:00 +0000 (01:46 +0000)]
Remove tests that are not suitable anymore. Plus they are not testing the original bugfixes anymore. These tests were inserted to check bug fixes in code that handled debug info intrinsics. These intrinsics are no longer used and now llvm parser simply ignores old .dbg intrinsics from these dead tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90923 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMove isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary...
Evan Cheng [Wed, 9 Dec 2009 01:36:00 +0000 (01:36 +0000)]
Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90922 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix a nasty variable that was shadowing the real CurBB but with the wrong value.
Chris Lattner [Wed, 9 Dec 2009 01:19:16 +0000 (01:19 +0000)]
fix a nasty variable that was shadowing the real CurBB but with the wrong value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90920 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoInfer alignment for non-fixed stack object.
Evan Cheng [Wed, 9 Dec 2009 01:17:24 +0000 (01:17 +0000)]
Infer alignment for non-fixed stack object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90919 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd const qualifier.
Evan Cheng [Wed, 9 Dec 2009 01:10:37 +0000 (01:10 +0000)]
Add const qualifier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90918 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRefactor InferAlignment out of DAGCombine.
Evan Cheng [Wed, 9 Dec 2009 01:04:59 +0000 (01:04 +0000)]
Refactor InferAlignment out of DAGCombine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90917 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix many input tracking bugs.
Chris Lattner [Wed, 9 Dec 2009 00:56:14 +0000 (00:56 +0000)]
fix many input tracking bugs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90915 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agowhen opt crashes, print its command line arguments as a pretty stack trace.
Chris Lattner [Wed, 9 Dec 2009 00:41:28 +0000 (00:41 +0000)]
when opt crashes, print its command line arguments as a pretty stack trace.
Somehow opt was missed when this was added.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90912 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a typo in a comment, and adjust SmallSet and SmallVector sizes,
Dan Gohman [Wed, 9 Dec 2009 00:28:42 +0000 (00:28 +0000)]
Fix a typo in a comment, and adjust SmallSet and SmallVector sizes,
that Chris noticed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90910 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix PHI translation to take the PHI out of the instinputs set and add
Chris Lattner [Wed, 9 Dec 2009 00:18:13 +0000 (00:18 +0000)]
fix PHI  translation to take the PHI out of the instinputs set and add
the translated value back to it if an instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90909 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoinstructions defined in CurBB may be intermediate nodes of the computation.
Chris Lattner [Wed, 9 Dec 2009 00:10:55 +0000 (00:10 +0000)]
instructions defined in CurBB may be intermediate nodes of the computation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90908 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd dumping and sanity checking support.
Chris Lattner [Wed, 9 Dec 2009 00:01:00 +0000 (00:01 +0000)]
add dumping and sanity checking support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90906 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPut a threshold on the number of users PointerMayBeCaptured
Dan Gohman [Tue, 8 Dec 2009 23:59:12 +0000 (23:59 +0000)]
Put a threshold on the number of users PointerMayBeCaptured
examines; fall back to a conservative answer if there are
more. This works around some several compile time problems
resulting from BasicAliasAnalysis calling PointerMayBeCaptured.

The value has been chosen arbitrarily.

This fixes rdar://7438917 and may partially address PR5708.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90905 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomake sure that PHITransAddr keeps its 'InstInputs' list up to
Chris Lattner [Tue, 8 Dec 2009 23:42:51 +0000 (23:42 +0000)]
make sure that PHITransAddr keeps its 'InstInputs' list up to
date when instsimplify kicks in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90901 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert 90858 90875 and 90805 for now.
Devang Patel [Tue, 8 Dec 2009 23:21:45 +0000 (23:21 +0000)]
Revert 90858 90875 and 90805 for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90898 91177308-0d34-0410-b5e6-96231b3b80d8

14 years ago- Support inline asm 'w' constraint for 128-bit vector types.
Evan Cheng [Tue, 8 Dec 2009 23:06:22 +0000 (23:06 +0000)]
- Support inline asm 'w' constraint for 128-bit vector types.
- Also support the 'q' NEON registers asm code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90894 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agolit: Prevent crash-on-invalid (when run on directory which has no test suite).
Daniel Dunbar [Tue, 8 Dec 2009 19:49:30 +0000 (19:49 +0000)]
lit: Prevent crash-on-invalid (when run on directory which has no test suite).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90871 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSet svn:ignore on tools/clang.
Daniel Dunbar [Tue, 8 Dec 2009 19:48:01 +0000 (19:48 +0000)]
Set svn:ignore on tools/clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90870 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running...
Daniel Dunbar [Tue, 8 Dec 2009 19:47:36 +0000 (19:47 +0000)]
CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running tests from the project files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90869 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert 90789 for now. It caused massive compile time regression. Post-ra scheduler...
Evan Cheng [Tue, 8 Dec 2009 19:34:53 +0000 (19:34 +0000)]
Revert 90789 for now. It caused massive compile time regression. Post-ra scheduler slowed down dramatically with this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90868 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSome superficial cleanups.
Bob Wilson [Tue, 8 Dec 2009 18:27:03 +0000 (18:27 +0000)]
Some superficial cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90866 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoClean up dead operands left around after SROA replaces a mem intrinsic.
Bob Wilson [Tue, 8 Dec 2009 18:22:03 +0000 (18:22 +0000)]
Clean up dead operands left around after SROA replaces a mem intrinsic.
I'm not aware that this does anything significant on its own, but it's
needed for another patch that I'm working on.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90864 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCleanup.
Devang Patel [Tue, 8 Dec 2009 15:31:31 +0000 (15:31 +0000)]
Cleanup.
There is no need to supply ModuleCU to addType() as a parameter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90858 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDo not try to push dead variable's debug info into namespace info.
Devang Patel [Tue, 8 Dec 2009 15:01:35 +0000 (15:01 +0000)]
Do not try to push dead variable's debug info into namespace info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90857 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove useless calls to c_str().
Benjamin Kramer [Tue, 8 Dec 2009 13:07:38 +0000 (13:07 +0000)]
Remove useless calls to c_str().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90855 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTeach GlobalOpt to delete aliases with internal linkage (after
Duncan Sands [Tue, 8 Dec 2009 10:10:20 +0000 (10:10 +0000)]
Teach GlobalOpt to delete aliases with internal linkage (after
forwarding any uses).  GlobalDCE can also do this, but is only
run at -O3.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90850 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix a typo (and -> add) and fix GetAvailablePHITranslatedSubExpr to not
Chris Lattner [Tue, 8 Dec 2009 06:06:26 +0000 (06:06 +0000)]
fix a typo (and -> add) and fix GetAvailablePHITranslatedSubExpr to not
side-effect the current object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90837 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove unnecessary #include "llvm/LLVMContext.h".
Nick Lewycky [Tue, 8 Dec 2009 05:45:41 +0000 (05:45 +0000)]
Remove unnecessary #include "llvm/LLVMContext.h".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90836 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agowhitespace cleanup
Chris Lattner [Tue, 8 Dec 2009 05:31:46 +0000 (05:31 +0000)]
whitespace cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90834 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemoved VC++ compatibility code from DataTypes.h.in.
Oscar Fuentes [Tue, 8 Dec 2009 02:49:54 +0000 (02:49 +0000)]
Removed VC++ compatibility code from DataTypes.h.in.

This header file is not used on VC++ builds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90829 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFor VC++, define the ?INT*_C macros only it they are not yet defined.
Oscar Fuentes [Tue, 8 Dec 2009 02:40:09 +0000 (02:40 +0000)]
For VC++, define the ?INT*_C macros only it they are not yet defined.

Some compatibility updates like the Boost TR1 compatibility headers
define them.

Patch contributed by OvermindDL1!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90828 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoReduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra instruction...
Anton Korobeynikov [Tue, 8 Dec 2009 01:03:04 +0000 (01:03 +0000)]
Reduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra instruction. Patch inspired by Brian Lucas!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90819 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWatch out for duplicated PHI instructions.
Evan Cheng [Mon, 7 Dec 2009 23:11:03 +0000 (23:11 +0000)]
Watch out for duplicated PHI instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90816 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFollow up to 90488. Turn a check into an assertion.
Evan Cheng [Mon, 7 Dec 2009 23:10:34 +0000 (23:10 +0000)]
Follow up to 90488. Turn a check into an assertion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90815 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix the OProfileJITEventListener for StringRef being returned from debug info.
Jeffrey Yasskin [Mon, 7 Dec 2009 22:32:38 +0000 (22:32 +0000)]
Fix the OProfileJITEventListener for StringRef being returned from debug info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90813 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRename DIFactory::InsertValue() as DIFactory::InsertDbgValueIntrinsic()
Victor Hernandez [Mon, 7 Dec 2009 21:54:43 +0000 (21:54 +0000)]
Rename DIFactory::InsertValue() as DIFactory::InsertDbgValueIntrinsic()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90807 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd support to emit debug info for c++ style namespaces.
Devang Patel [Mon, 7 Dec 2009 21:41:32 +0000 (21:41 +0000)]
Add support to emit debug info for c++ style namespaces.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90805 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDelete code accidentally left behind.
Evan Cheng [Mon, 7 Dec 2009 21:19:33 +0000 (21:19 +0000)]
Delete code accidentally left behind.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90804 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix typo
Chris Lattner [Mon, 7 Dec 2009 19:52:57 +0000 (19:52 +0000)]
fix typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90793 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd accessor, improve comment.
Chris Lattner [Mon, 7 Dec 2009 19:45:30 +0000 (19:45 +0000)]
add accessor, improve comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90792 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTest case for 90787.
Evan Cheng [Mon, 7 Dec 2009 19:42:22 +0000 (19:42 +0000)]
Test case for 90787.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90791 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse FileCheck and set nounwind on calls.
David Greene [Mon, 7 Dec 2009 19:40:26 +0000 (19:40 +0000)]
Use FileCheck and set nounwind on calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90790 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoApply Pekka Jääskeläinen's patch to raise the first virtual register
Dan Gohman [Mon, 7 Dec 2009 19:38:26 +0000 (19:38 +0000)]
Apply Pekka Jääskeläinen's patch to raise the first virtual register
number in order to accomodate targets with more than 1024 registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90789 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIntroduce the "@llvm.dbg.value" debug intrinsic.
Victor Hernandez [Mon, 7 Dec 2009 19:36:34 +0000 (19:36 +0000)]
Introduce the "@llvm.dbg.value" debug intrinsic.

The semantics of llvm.dbg.value are that starting from where it is executed, an offset into the specified user source variable is specified to get a new value.

An example:
  call void @llvm.dbg.value(metadata !{ i32 7 }, i64 0, metadata !2)
Here the user source variable associated with metadata #2 gets the value "i32 7" at offset 0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90788 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSimplify a bit.
Mikhail Glushenkov [Mon, 7 Dec 2009 19:16:13 +0000 (19:16 +0000)]
Simplify a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90785 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoThrow 'const char*' instead of 'std::string'.
Mikhail Glushenkov [Mon, 7 Dec 2009 19:15:57 +0000 (19:15 +0000)]
Throw 'const char*' instead of 'std::string'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90784 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd support for phi translation and incorpation of new expression.
Chris Lattner [Mon, 7 Dec 2009 19:04:49 +0000 (19:04 +0000)]
add support for phi translation and incorpation of new expression.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90782 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDon't enable the post-RA scheduler on x86 except at -O3. In its
Dan Gohman [Mon, 7 Dec 2009 19:04:31 +0000 (19:04 +0000)]
Don't enable the post-RA scheduler on x86 except at -O3. In its
current form, it is too expensive in compile time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90781 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agocheckpoint of the new PHITransAddr code, still not done and not used by
Chris Lattner [Mon, 7 Dec 2009 18:36:53 +0000 (18:36 +0000)]
checkpoint of the new PHITransAddr code, still not done and not used by
anything.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90779 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRegenerate.
Mikhail Glushenkov [Mon, 7 Dec 2009 18:26:24 +0000 (18:26 +0000)]
Regenerate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90776 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDocumentation update.
Mikhail Glushenkov [Mon, 7 Dec 2009 18:26:11 +0000 (18:26 +0000)]
Documentation update.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90775 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDeprecate 'unpack_values'.
Mikhail Glushenkov [Mon, 7 Dec 2009 18:25:54 +0000 (18:25 +0000)]
Deprecate 'unpack_values'.

Use 'forward_values' + 'comma_separated' instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90774 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPass '-msse' and friends to llc as '-mattr=+/-'.
Mikhail Glushenkov [Mon, 7 Dec 2009 17:03:21 +0000 (17:03 +0000)]
Pass '-msse' and friends to llc as '-mattr=+/-'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90771 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoImplement 'forward_value' and 'forward_transformed_value'.
Mikhail Glushenkov [Mon, 7 Dec 2009 17:03:05 +0000 (17:03 +0000)]
Implement 'forward_value' and 'forward_transformed_value'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90770 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRefactoring, no functionality change.
Mikhail Glushenkov [Mon, 7 Dec 2009 10:51:55 +0000 (10:51 +0000)]
Refactoring, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90764 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPre-regalloc tale duplication. Work in progress.
Evan Cheng [Mon, 7 Dec 2009 10:15:19 +0000 (10:15 +0000)]
Pre-regalloc tale duplication. Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90759 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofixed some typos in method comments, reworded some comments for clarity
John Mosby [Mon, 7 Dec 2009 09:06:37 +0000 (09:06 +0000)]
fixed some typos in method comments, reworded some comments for clarity

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90754 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFixes the Atomic implementation if compiled by MSVC compiler.
Oscar Fuentes [Mon, 7 Dec 2009 05:29:59 +0000 (05:29 +0000)]
Fixes the Atomic implementation if compiled by MSVC compiler.

sys::cas_flag should be long on this platform, InterlockedAdd() is
defined only for the Itanium architecture (according to MSDN).

Patch by Michael Beck!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90748 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIf BB is empty, insert PHI before end() instead of front().
Evan Cheng [Mon, 7 Dec 2009 03:07:01 +0000 (03:07 +0000)]
If BB is empty, insert PHI before end() instead of front().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90744 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSome pretty-printing
Anton Korobeynikov [Mon, 7 Dec 2009 02:28:41 +0000 (02:28 +0000)]
Some pretty-printing

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90742 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTruncate the arguments of llvm.frameaddress / llvm.returnaddress intrinsics from...
Anton Korobeynikov [Mon, 7 Dec 2009 02:28:26 +0000 (02:28 +0000)]
Truncate the arguments of llvm.frameaddress / llvm.returnaddress intrinsics from i32 to platform's largest native type

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90741 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from x86 :)
Anton Korobeynikov [Mon, 7 Dec 2009 02:28:10 +0000 (02:28 +0000)]
Add lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from x86 :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90740 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoInitial codegen support for MSP430 ISRs
Anton Korobeynikov [Mon, 7 Dec 2009 02:27:53 +0000 (02:27 +0000)]
Initial codegen support for MSP430 ISRs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90739 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd MSP430 interrupt calling conv. No functionality change yet.
Anton Korobeynikov [Mon, 7 Dec 2009 02:27:35 +0000 (02:27 +0000)]
Add MSP430 interrupt calling conv. No functionality change yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90738 91177308-0d34-0410-b5e6-96231b3b80d8