Johnny Chen
1f028bb23e
The ARM disassembler was not recognizing USADA8 instruction. Need to add checking for register values
...
for USAD8 and USADA8.
rdar://problem/9247060
llvm-svn: 129047
2011-04-07 01:05:52 +00:00
Evan Cheng
859dff2c87
Change -arm-divmod-libcall to a target neutral option.
...
llvm-svn: 129045
2011-04-07 00:58:44 +00:00
Evan Cheng
1d3691e071
Remove dead code. rdar://9221736.
...
llvm-svn: 129044
2011-04-07 00:56:37 +00:00
Johnny Chen
523f8f38f7
Should also check SMLAD for invalid register values.
...
rdar://problem/9246650
llvm-svn: 129042
2011-04-07 00:50:25 +00:00
Devang Patel
bb234bb5dd
Simplify. isIdenticalToWhenDefined() checks opcode.
...
llvm-svn: 129041
2011-04-07 00:30:15 +00:00
Nick Lewycky
04fdd20e58
Set unnamed_addr on strings created through the IRBuilder.
...
llvm-svn: 129040
2011-04-07 00:14:29 +00:00
Nick Lewycky
fccee4ca24
Add support for ArrayRef in IRBuilder's CreateCall.
...
llvm-svn: 129039
2011-04-07 00:03:25 +00:00
Owen Anderson
37b60bdf09
Teach the ARM peephole optimizer that RSB, RSC, ADC, and SBC can be used for folded comparisons, just like ADD and SUB.
...
llvm-svn: 129038
2011-04-06 23:35:59 +00:00
Owen Anderson
7f766b61a1
Cleanups from Jim: remove redundant constraints and a dead FIXME.
...
llvm-svn: 129036
2011-04-06 22:45:55 +00:00
Devang Patel
12a95842b2
While folding branch to a common destination into a predecessor, copy dbg values also.
...
llvm-svn: 129035
2011-04-06 22:37:20 +00:00
Jim Grosbach
0510dc2765
Tidy up.
...
llvm-svn: 129034
2011-04-06 22:35:47 +00:00
Johnny Chen
81aa7d84be
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
^
llvm-svn: 129033
2011-04-06 22:14:48 +00:00
Jim Grosbach
3b01595efd
tidy up.
...
llvm-svn: 129032
2011-04-06 22:13:52 +00:00
Jakob Stoklund Olesen
b59d7e2dea
Also account for the spill code that would be inserted in live-through blocks with interference.
...
llvm-svn: 129030
2011-04-06 21:32:41 +00:00
Jakob Stoklund Olesen
7bd327adbc
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.
llvm-svn: 129029
2011-04-06 21:32:38 +00:00
Nick Lewycky
a980fa69e8
Fix typo in doxy-comment.
...
llvm-svn: 129028
2011-04-06 20:54:07 +00:00
Johnny Chen
96fd9620c8
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
llvm-svn: 129027
2011-04-06 20:49:02 +00:00
Nick Lewycky
505e20340f
Fix comment to use llvm 2.x syntax.
...
llvm-svn: 129025
2011-04-06 20:38:44 +00:00
Nick Lewycky
f2d78099ce
Replace const std::vector& with ArrayRef in the type creation APIs.
...
llvm-svn: 129024
2011-04-06 20:28:34 +00:00
Jakob Stoklund Olesen
7621fb6c1b
Keep track of the number of positively biased nodes when adding constraints.
...
If there are no positive nodes, the algorithm can be aborted early.
llvm-svn: 129021
2011-04-06 19:14:00 +00:00
Jakob Stoklund Olesen
00f622b9b1
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.
llvm-svn: 129020
2011-04-06 19:13:57 +00:00
Roman Divacky
ad7a68fff5
Fix a typo.
...
llvm-svn: 129019
2011-04-06 19:12:21 +00:00
Johnny Chen
b3130a03a7
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
llvm-svn: 129015
2011-04-06 18:27:46 +00:00
Rafael Espindola
2d898c22cd
Add another case we are not optimizing.
...
llvm-svn: 129012
2011-04-06 17:35:32 +00:00
Rafael Espindola
115cbc12ea
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.
llvm-svn: 129011
2011-04-06 17:19:35 +00:00
Devang Patel
5799b28555
face+palm
...
Keep track of llvm.dbg.value intrinsics with non null values.
llvm-svn: 129010
2011-04-06 17:08:15 +00:00
Rafael Espindola
71cc0a3215
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.
llvm-svn: 129009
2011-04-06 16:49:37 +00:00
Jim Grosbach
b966c26bc9
EngineBuilder setter method for UseMCJIT was missing return value.
...
llvm-svn: 129008
2011-04-06 16:35:19 +00:00
Chris Lattner
6f4969e793
add rubinius
...
llvm-svn: 129006
2011-04-06 16:14:25 +00:00
Frits van Bommel
51604bed0f
Fix a few instances of "warning: extra ';' outside of a function [-pedantic]".
...
llvm-svn: 129002
2011-04-06 12:29:56 +00:00
Nadav Rotem
ecc7d9a408
This testcase passed even without the fix. Added the target info to make the
...
test fail (without the fix). Thanks Dan.
llvm-svn: 128999
2011-04-06 11:18:29 +00:00
Duncan Sands
dd20746250
Fix some typos. Minor tweaks to how some things were expressed.
...
llvm-svn: 128997
2011-04-06 08:07:40 +00:00
Jay Foad
c3de661aa8
Trivial typo fixes.
...
llvm-svn: 128996
2011-04-06 07:55:30 +00:00
Nick Lewycky
e15c6c11b4
Add an empty key for DebugLoc so that you can store an empty DebugLoc in a
...
DenseMap.
llvm-svn: 128994
2011-04-06 06:49:59 +00:00
Chris Lattner
a579f228bf
Finish up the first draft of the release notes.
...
improvements are welcome, please commit any changes directly to SVN.
llvm-svn: 128992
2011-04-06 06:29:50 +00:00
Chris Lattner
aa6816aa16
continue writing.
...
llvm-svn: 128990
2011-04-06 05:50:04 +00:00
Nick Lewycky
dfed8e0ff5
Support using DebugLoc's in a DenseMap.
...
llvm-svn: 128988
2011-04-06 05:36:52 +00:00
Jakob Stoklund Olesen
10a362acbd
Oops. Scary.
...
llvm-svn: 128986
2011-04-06 04:07:14 +00:00
Jakob Stoklund Olesen
bb79ab5ba3
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.
llvm-svn: 128985
2011-04-06 03:57:00 +00:00
Johnny Chen
765dec3867
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
llvm-svn: 128977
2011-04-06 01:18:32 +00:00
Chris Lattner
a2c6b5c1c3
add the external users that emailed me.
...
llvm-svn: 128974
2011-04-06 01:13:49 +00:00
Jim Grosbach
8a1f712b53
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.
llvm-svn: 128973
2011-04-06 01:11:05 +00:00
Chris Lattner
430be971a9
some libc++ notes.
...
llvm-svn: 128970
2011-04-06 00:59:18 +00:00
Chris Lattner
d1df6aa094
some edits.
...
llvm-svn: 128969
2011-04-06 00:56:12 +00:00
Chris Lattner
379ef843a9
distribute content out to the appropriate sections
...
llvm-svn: 128968
2011-04-06 00:45:11 +00:00
Owen Anderson
b59504a1a1
Reapply r128946 (pseudoization of various instructions), and fix the extra imp-def of CPSR it was adding.
...
llvm-svn: 128965
2011-04-05 23:55:28 +00:00
Chandler Carruth
4e7b7e7732
Make the virtual destructor out-of-line so we have a key function.
...
llvm-svn: 128964
2011-04-05 23:54:31 +00:00
Jakob Stoklund Olesen
50ab0391d7
Sign error
...
llvm-svn: 128963
2011-04-05 23:43:16 +00:00
Jakob Stoklund Olesen
2bba415e6f
Don't crash when a value is defined after the last split point.
...
llvm-svn: 128962
2011-04-05 23:43:14 +00:00
Jakob Stoklund Olesen
88a0367967
Permit blocks to branch directly to a landing pad.
...
Treat the landing pad as a normal successor when that happens.
llvm-svn: 128961
2011-04-05 23:43:11 +00:00