Commit Graph

71662 Commits

Author SHA1 Message Date
Nick Lewycky
c60a475091 Add support for ArrayRef in IRBuilder's CreateCall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129039 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-07 00:03:25 +00:00
Owen Anderson
df298c9ea6 Teach the ARM peephole optimizer that RSB, RSC, ADC, and SBC can be used for folded comparisons, just like ADD and SUB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129038 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 23:35:59 +00:00
Owen Anderson
ef7fb17936 Cleanups from Jim: remove redundant constraints and a dead FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129036 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 22:45:55 +00:00
Devang Patel
d418194036 While folding branch to a common destination into a predecessor, copy dbg values also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129035 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 22:37:20 +00:00
Jim Grosbach
f22eefba68 Tidy up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129034 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 22:35:47 +00:00
Johnny Chen
d8b4c4d74f A8.6.393
The ARM disassembler should reject invalid (type, align) encodings as invalid instructions.

So, instead of:
Opcode=1641 Name=VST2b32_UPD Format=ARM_FORMAT_NLdSt(30)
 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0 
-------------------------------------------------------------------------------------------------
| 1: 1: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0| 0: 0: 1: 1| 0: 0: 0: 0| 1: 0: 0: 1| 1: 0: 1: 1| 0: 0: 1: 1|
-------------------------------------------------------------------------------------------------

	vst2.32	{d0, d2}, [r3, :256], r3

we now have:
Opcode=1641 Name=VST2b32_UPD Format=ARM_FORMAT_NLdSt(30)
 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0 
-------------------------------------------------------------------------------------------------
| 1: 1: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0| 0: 0: 1: 1| 0: 0: 0: 0| 1: 0: 0: 1| 1: 0: 1: 1| 0: 0: 1: 1|
-------------------------------------------------------------------------------------------------

mc-input.txt:1:1: warning: invalid instruction encoding
0xb3 0x9 0x3 0xf4
^


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129033 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 22:14:48 +00:00
Jim Grosbach
01ccab4012 tidy up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129032 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 22:13:52 +00:00
Jakob Stoklund Olesen
9a54352879 Also account for the spill code that would be inserted in live-through blocks with interference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129030 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 21:32:41 +00:00
Jakob Stoklund Olesen
1b400e840f Abort the constraint calculation early when all positive bias is lost.
Without any positive bias, there is nothing for the spill placer to to. It will
spill everywhere.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129029 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 21:32:38 +00:00
Nick Lewycky
b0923771c9 Fix typo in doxy-comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129028 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 20:54:07 +00:00
Johnny Chen
4d81c9a6ba A8.6.92 MCR (Encoding A1): if coproc == '101x' then SEE "Advanced SIMD and VFP"
Since these "Advanced SIMD and VFP" instructions have more specfic encoding bits
specified, if coproc == 10 or 11, we should reject the insn as invalid.

rdar://problem/9239922
rdar://problem/9239596


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129027 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 20:49:02 +00:00
Nick Lewycky
a040d47c74 Fix comment to use llvm 2.x syntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129025 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 20:38:44 +00:00
Nick Lewycky
ec5d1800f9 Replace const std::vector& with ArrayRef in the type creation APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129024 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 20:28:34 +00:00
Jakob Stoklund Olesen
70d4370b47 Keep track of the number of positively biased nodes when adding constraints.
If there are no positive nodes, the algorithm can be aborted early.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129021 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 19:14:00 +00:00
Jakob Stoklund Olesen
9efa2a263e Break the spill placement algorithm into three parts: prepare, addConstraints, and finish.
This will allow us to abort the algorithm early if it is determined to be futile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129020 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 19:13:57 +00:00
Roman Divacky
77b42e9654 Fix a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129019 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 19:12:21 +00:00
Johnny Chen
a9611549fe Fix a bug in the disassembly of VGETLNs8 where the lane index was wrong.
Also set the encoding bits (for A8.6.303, A8.6.328, A8.6.329) Inst{3-0} = 0b0000,
in class NVLaneOp.

rdar://problem/9240648


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129015 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 18:27:46 +00:00
Rafael Espindola
3d195faaad Add another case we are not optimizing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129012 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 17:35:32 +00:00
Rafael Espindola
8617897aaa The original issue has been fixed by not doing unnecessary sign extensions.
Change the test to force a sign extension and expose the problem again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129011 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 17:19:35 +00:00
Devang Patel
f3480a8015 face+palm
Keep track of llvm.dbg.value intrinsics with non null values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129010 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 17:08:15 +00:00
Rafael Espindola
f5a90561b0 Do a topological sort of the types before writing them out.
This takes the linking of libxul on linux from 6m54.931s to 5m39.840s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129009 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 16:49:37 +00:00
Jim Grosbach
714b34fc24 EngineBuilder setter method for UseMCJIT was missing return value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129008 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 16:35:19 +00:00
Chris Lattner
0fa5da9753 add rubinius
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129006 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 16:14:25 +00:00
Frits van Bommel
090771fa26 Fix a few instances of "warning: extra ';' outside of a function [-pedantic]".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129002 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 12:29:56 +00:00
Nadav Rotem
d496f88c0c This testcase passed even without the fix. Added the target info to make the
test fail (without the fix). Thanks Dan.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128999 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 11:18:29 +00:00
Duncan Sands
f3ba7afde0 Fix some typos. Minor tweaks to how some things were expressed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128997 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 08:07:40 +00:00
Jay Foad
cb88ec34f0 Trivial typo fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128996 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 07:55:30 +00:00
Nick Lewycky
4841121580 Add an empty key for DebugLoc so that you can store an empty DebugLoc in a
DenseMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128994 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 06:49:59 +00:00
Chris Lattner
49123fd58c Finish up the first draft of the release notes.
improvements are welcome, please commit any changes directly to SVN.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128992 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 06:29:50 +00:00
Chris Lattner
c5ac61d64f continue writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128990 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 05:50:04 +00:00
Nick Lewycky
af4db5fc95 Support using DebugLoc's in a DenseMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128988 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 05:36:52 +00:00
Jakob Stoklund Olesen
49460bc499 Oops. Scary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128986 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 04:07:14 +00:00
Jakob Stoklund Olesen
db529a8a5d Analyze blocks with uses separately from live-through blocks without uses.
About 90% of the relevant blocks are live-through without uses, and the only
information required about them is their number. This saves memory and enables
later optimizations that need to look at only the use-blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128985 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 03:57:00 +00:00
Johnny Chen
6a1220eeca Add a missing opcode (SMLSLDX) to BadRegsMulFrm() function.
Add more complete sanity check for LdStFrm instructions where if IBit (Inst{25})
is 1, Inst{4} should be 0.  Otherwise, we should reject the insn as invalid.

rdar://problem/9239347
rdar://problem/9239467


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128977 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 01:18:32 +00:00
Chris Lattner
3bfe57e123 add the external users that emailed me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128974 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 01:13:49 +00:00
Jim Grosbach
c41ab789a0 RuntimeDyld should use the memory manager API.
Start teaching the runtime Dyld interface to use the memory manager API
for allocating space. Rather than mapping directly into the MachO object,
we extract the payload for each object and copy it into a dedicated buffer
allocated via the memory manager. For now, just do Segment64, so this works
on x86_64, but not yet on ARM.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128973 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 01:11:05 +00:00
Chris Lattner
2009c49a0b some libc++ notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128970 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 00:59:18 +00:00
Chris Lattner
df448a38e7 some edits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128969 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 00:56:12 +00:00
Chris Lattner
1efe27eb79 distribute content out to the appropriate sections
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128968 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06 00:45:11 +00:00
Owen Anderson
b48c791515 Reapply r128946 (pseudoization of various instructions), and fix the extra imp-def of CPSR it was adding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128965 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:55:28 +00:00
Chandler Carruth
53c5e7b2e7 Make the virtual destructor out-of-line so we have a key function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128964 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:54:31 +00:00
Jakob Stoklund Olesen
71d9e65ee7 Sign error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128963 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:43:16 +00:00
Jakob Stoklund Olesen
b3dd82670a Don't crash when a value is defined after the last split point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128962 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:43:14 +00:00
Jakob Stoklund Olesen
3e22897fa9 Permit blocks to branch directly to a landing pad.
Treat the landing pad as a normal successor when that happens.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128961 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:43:11 +00:00
Jim Grosbach
caf767bb02 Remove extraneous 'return'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128959 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:39:08 +00:00
Johnny Chen
2c868d1eef Fix a typo in the handling of PKHTB opcode, plus add sanity check for illegal register
encodings for DisassembleArithMiscFrm().

rdar://problem/9238659


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128958 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:28:00 +00:00
Chris Lattner
e4dc1966ba finished my pass through all the 2.9 commits, now to make this intelligible
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128955 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:22:33 +00:00
Chris Lattner
8ae4261d3c mention llvm::ArrayRef, which should be use much more pervasively than
it already is.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128954 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:18:20 +00:00
Bob Wilson
61f3cf3bc9 Clean up some code for clarity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128953 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:03:25 +00:00
Chandler Carruth
d36d42d4ac Provide an empty virtual destructor to go with the virtual methods in
this class. Clang was warning on this with -Wnon-virtual-dtor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128952 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05 23:03:24 +00:00