Jim Grosbach
4da03f007f
Thumb CPS definition is not disassembler only.
...
llvm-svn: 140106
2011-09-20 00:00:06 +00:00
Jim Grosbach
d9846bbce2
Thumb2 range check on CPS mode immediate.
...
llvm-svn: 140105
2011-09-19 23:58:31 +00:00
Owen Anderson
163be01d69
tMOVSr is not allowed in an IT block either.
...
llvm-svn: 140104
2011-09-19 23:57:20 +00:00
Bill Wendling
708d38e06a
Update to the new EH syntax.
...
llvm-svn: 140103
2011-09-19 23:50:34 +00:00
Owen Anderson
61e4604dd8
CPS instructions are UNPREDICTABLE inside IT blocks.
...
llvm-svn: 140102
2011-09-19 23:47:10 +00:00
Bill Wendling
ff5d9cc389
Dramatically reduce this testcase.
...
llvm-svn: 140101
2011-09-19 23:47:06 +00:00
Jim Grosbach
fbb4481097
Tidy up comments.
...
llvm-svn: 140099
2011-09-19 23:38:34 +00:00
Bruno Cardoso Lopes
c4398d2c7b
Fix PR10949. Fix the encoding of VMOVPQIto64rr.
...
llvm-svn: 140098
2011-09-19 23:36:59 +00:00
Bruno Cardoso Lopes
51792dcc4d
Based on the small opt Zvi's patch was trying to achieve, eliminate
...
128-bit undef subvector insertion into a 256-bit vector
llvm-svn: 140097
2011-09-19 23:36:50 +00:00
Jim Grosbach
788a8cd4e6
Tidy up a bit.
...
llvm-svn: 140096
2011-09-19 23:34:18 +00:00
Jim Grosbach
fc5451832a
Thumb2 assembly parsing and encoding for UMAAL/UMLAL/UMULL.
...
llvm-svn: 140095
2011-09-19 23:31:02 +00:00
Bill Wendling
7cdaa3a1a8
Revert r140083 and r140084 until buildbots can be fixed.
...
llvm-svn: 140094
2011-09-19 23:30:41 +00:00
Eric Christopher
4b0ae48614
Remove llvmc and assorted build machinery for it.
...
The problems that llvmc solved have largely been subsumed with the
tasks that the clang driver can accomplish, but llvmc lacks flexibility
and depends too heavily on the EOL'd llvm-gcc.
llvm-svn: 140093
2011-09-19 23:22:41 +00:00
Jim Grosbach
1ab5e56324
Thumb2 assembly parsing and encoding for UHSUB16/UHSUB8.
...
llvm-svn: 140089
2011-09-19 23:15:36 +00:00
Jim Grosbach
15d97fd89b
Thumb2 assembly parsing and encoding for UHASX/UHSAX.
...
llvm-svn: 140088
2011-09-19 23:13:25 +00:00
Jim Grosbach
3a64050470
Thumb2 assembly parsing and encoding for UHADD16/UHADD8.
...
llvm-svn: 140087
2011-09-19 23:08:24 +00:00
Jim Grosbach
dd00b9f452
Thumb2 assembly parsing and encoding for UBFX.
...
llvm-svn: 140086
2011-09-19 23:06:38 +00:00
Jim Grosbach
a6e6504e2a
Thumb2 assembly parsing and encoding for UASX.
...
llvm-svn: 140085
2011-09-19 23:05:22 +00:00
Bill Wendling
d01aee587f
Update test to remove the 'unwind' instruction.
...
llvm-svn: 140084
2011-09-19 23:01:11 +00:00
Bill Wendling
d3c9d971e6
If we are extracting a basic block that ends in an invoke call, we must also
...
extract the landing pad block. Otherwise, there will be a situation where the
invoke's unwind edge lands on a non-landing pad.
We also forbid the user from extracting the landing pad block by itself. Again,
this is not a valid transformation.
llvm-svn: 140083
2011-09-19 23:00:52 +00:00
Jim Grosbach
f5028fd141
Fix copy/past-o. Gotta remember that 'modify' step...
...
llvm-svn: 140082
2011-09-19 22:53:00 +00:00
Jim Grosbach
c704263440
Thumb2 assembly parsing and encoding for UADD16/UADD8.
...
llvm-svn: 140081
2011-09-19 22:52:27 +00:00
Jim Grosbach
c74e2c3b07
Thumb2 assembly parsing and encoding for TST.
...
llvm-svn: 140080
2011-09-19 22:46:06 +00:00
Owen Anderson
f902d92fc9
Thumb2 TBB and TBH instructions are only allowed at the end of IT blocks, not in the middle.
...
llvm-svn: 140079
2011-09-19 22:34:23 +00:00
Jim Grosbach
05541f45f3
Thumb2 assembly parsing and encoding for TBB/TBH.
...
llvm-svn: 140078
2011-09-19 22:21:13 +00:00
Bill Wendling
8bf0eab34d
Replace uses of unwind with unreachable for the same effect.
...
llvm-svn: 140077
2011-09-19 22:16:15 +00:00
Bill Wendling
e7b02b8170
Replace more uses of 'unwind' in the tests with calls to landingpad and
...
resume. Note that some of these tests were basically dead.
llvm-svn: 140076
2011-09-19 22:11:35 +00:00
Eli Friedman
eb1bd24134
Some additional tests for Thumb atomic load and store (which I somehow forgot to commit earlier).
...
llvm-svn: 140074
2011-09-19 22:02:33 +00:00
Eli Friedman
61d7c8a065
Fix an infinite loop where a transform in InstCombiner::visitAnd claims a construct is changed when it is not. (See included testcase.)
...
Patch by Xiaoyi Guo.
llvm-svn: 140072
2011-09-19 21:58:15 +00:00
Jim Grosbach
52faf4bff9
Thumb2 assembly parsing and encoding for TEQ.
...
llvm-svn: 140070
2011-09-19 21:41:21 +00:00
Bruno Cardoso Lopes
d4a3d452d4
Match X86ISD::FSETCCsd and X86ISD::FSETCCss while in AVX mode. This fix
...
PR10955 and PR10948.
llvm-svn: 140069
2011-09-19 21:29:24 +00:00
Bill Wendling
c945f54ea5
This testcase is dead. It doesn't inline even if I add the 'alwaysinline'
...
attribute to the @foo function.
llvm-svn: 140067
2011-09-19 21:14:33 +00:00
Eric Christopher
66ad57b04e
Regenerate configure.
...
llvm-svn: 140065
2011-09-19 20:46:12 +00:00
Eric Christopher
4418a60272
Rename LLVM_MULTITHREADED define and fix build without threads.
...
Patch by Arrowdodger.
llvm-svn: 140064
2011-09-19 20:43:23 +00:00
Jim Grosbach
1a23fbb9fd
Tidy up a bit.
...
llvm-svn: 140050
2011-09-19 20:31:59 +00:00
Jim Grosbach
ee9ff79319
Remove FIXME. TBB/TBH are Thumb mode only instructions.
...
llvm-svn: 140048
2011-09-19 20:30:29 +00:00
Jim Grosbach
8221319707
Thumb2 assembly parsing and encoding for SXTB/SXTB16/SXTH.
...
llvm-svn: 140047
2011-09-19 20:29:33 +00:00
Akira Hatanaka
79738336a8
Make changes to avoid creating nested CALLSEQ_START/END constructs, which aren't
...
yet legal according to comments in LegalizeDAG.cpp:227.
Memcpy nodes created for copying byval arguments are inserted before
CALLSEQ_START.
The two failing tests reported in PR10876 pass after applying this patch.
llvm-svn: 140046
2011-09-19 20:26:02 +00:00
Benjamin Kramer
444f079d34
Nope, there's another one!
...
llvm-svn: 140045
2011-09-19 20:23:01 +00:00
Benjamin Kramer
babc5291f4
Missed one instance of implicit pointer conversion.
...
llvm-svn: 140044
2011-09-19 20:14:46 +00:00
Benjamin Kramer
c20a3ebba0
Silence -Wsign-compare warnings from GCC.
...
llvm-svn: 140043
2011-09-19 20:08:54 +00:00
Benjamin Kramer
78ee973788
Try to make MSVC 2010 happy.
...
llvm-svn: 140042
2011-09-19 20:08:52 +00:00
Owen Anderson
8c021d85a6
Specify an additional fixed bit in the Thumb2 SSAT encoding to prevent the decoder from emitting gibberish for this invalid encoding.
...
llvm-svn: 140041
2011-09-19 20:00:02 +00:00
Eli Friedman
222b5a4f5a
Fix a typo in the bitcode reader in the handling of atomic stores. Reported by David Meyer on llvmdev.
...
llvm-svn: 140040
2011-09-19 19:41:28 +00:00
Jim Grosbach
40700e0992
ARM asm parsing should handle pre-indexed writeback w/o immediate.
...
For example, 'ldrb r9, [sp]!' is odd, but valid.
llvm-svn: 140035
2011-09-19 18:42:21 +00:00
David Greene
39db48d0d4
Better Error Reporting
...
Report missing template arguments more helpfully by supplying the name
of the missing argument in the error message.
llvm-svn: 140034
2011-09-19 18:26:07 +00:00
Jakob Stoklund Olesen
1c4831764c
X86 has asterisk-free inline asm support now.
...
Floating point stack inline asm works.
llvm-svn: 140033
2011-09-19 18:15:46 +00:00
Owen Anderson
ddfcec92d9
Handle STRT (and friends) like LDRT (and friends) for decoding purposes. Port over additional encoding tests to decoding tests.
...
llvm-svn: 140032
2011-09-19 18:07:10 +00:00
Jim Grosbach
264abdecf0
Thumb2 assembly parsing and encoding for SXTAB/SXTAB16/SXTAH.
...
llvm-svn: 140029
2011-09-19 17:56:37 +00:00
Benjamin Kramer
43a772eda1
Add a MachO-specific "mode" to llvm-objdump, that, if enabled, gathers additional information that are only available on MachO.
...
- It can take FunctionStarts from a binary to find entry points more accurately.
- Symbol offsets in executables are correct now.
llvm-svn: 140028
2011-09-19 17:56:04 +00:00
Benjamin Kramer
1223416411
MCInstrAnalysis: Don't crash on instructions with no operands.
...
llvm-svn: 140027
2011-09-19 17:56:00 +00:00
Andrew Trick
7251e41b16
[indvars] Fix PR10946: SCEV cannot handle Vector IVs.
...
llvm-svn: 140026
2011-09-19 17:54:39 +00:00
Jim Grosbach
ec7c23eed3
Thumb2 assembly parsing and encoding for SVC.
...
llvm-svn: 140025
2011-09-19 17:40:35 +00:00
Jim Grosbach
aa4c0d3986
Thumb2 assembly parsing and encoding for SUB(register).
...
llvm-svn: 140024
2011-09-19 17:37:48 +00:00
Stepan Dyatkovskiy
12746ea313
Added regression test for bug #10869 .
...
llvm-svn: 140012
2011-09-19 07:48:08 +00:00
NAKAMURA Takumi
dbd883b915
Add Win32 support to llvm::llvm_execute_on_thread(). Thanks to Aaron Ballman!
...
llvm-svn: 140011
2011-09-19 07:41:43 +00:00
Jakob Stoklund Olesen
10acf3577f
Claimed.
...
llvm-svn: 140010
2011-09-19 05:34:10 +00:00
Nadav Rotem
763c11cc12
Fix typos in my prev commit, found by Tobi.
...
llvm-svn: 140003
2011-09-18 19:00:23 +00:00
Nadav Rotem
261a10a007
setOperationAction should be done on the return value of the type, not the operands.
...
llvm-svn: 140001
2011-09-18 14:57:03 +00:00
Bill Wendling
fd24834588
Remove obsolete .pod files.
...
llvm-svn: 140000
2011-09-18 12:52:55 +00:00
Bill Wendling
1e7126d68c
Fix up the formating and change llvm-gcc to clang.
...
Note that this example doesn't work anymore!
llvm-svn: 139999
2011-09-18 12:51:05 +00:00
Bill Wendling
2488f168cc
Remove mention of llvm-gcc/llvm-g++ from doc.
...
llvm-svn: 139998
2011-09-18 12:37:20 +00:00
Nadav Rotem
7ae11279e9
When promoting integer vectors we often create ext-loads. This patch adds a
...
dag-combine optimization to implement the ext-load efficiently (using shuffles).
For example the type <4 x i8> is stored in memory as i32, but it needs to
find its way into a <4 x i32> register. Previously we scalarized the memory
access, now we use shuffles.
llvm-svn: 139995
2011-09-18 10:39:32 +00:00
Nadav Rotem
7aaa0aa7a7
white space cleanups
...
llvm-svn: 139994
2011-09-18 10:29:29 +00:00
Craig Topper
d9d01917ee
Fix typo by changing Lower256IntVETCC to Lower256IntVSETCC.
...
llvm-svn: 139993
2011-09-18 08:03:58 +00:00
Benjamin Kramer
98e5736295
Apply Duncan's test fix from r139986 to the avx version of that test too.
...
llvm-svn: 139992
2011-09-18 00:41:38 +00:00
Duncan Sands
f2b8c854dd
Synthesize x86 max/min instructions also for vectors (i.e. produce
...
maxps and maxpd). This broke the sse41-blend.ll testcase by causing
maxpd to be produced rather than a cmp+blend pair, which is the reason
I tweaked it. Gives a small speedup on doduc with dragonegg when the
GCC vectorizer is used.
llvm-svn: 139986
2011-09-17 16:49:39 +00:00
Bruno Cardoso Lopes
4641efe304
Describe more AVX 128-bit convert instructions without patterns to have
...
mayLoad = 1
llvm-svn: 139973
2011-09-16 23:41:29 +00:00
Owen Anderson
502cd9d87a
Bitfield mask instructions are unpredictable if the encoded LSB is higher than the encoded MSB.
...
llvm-svn: 139972
2011-09-16 23:30:01 +00:00
Owen Anderson
09a9b6b953
Add a testcase for another corner-case decoding.
...
llvm-svn: 139970
2011-09-16 23:15:29 +00:00
Owen Anderson
b925e935d7
Fix bitfield decoding based on Eli's feedback.
...
llvm-svn: 139969
2011-09-16 23:04:48 +00:00
Ted Kremenek
502848ceda
Add ImmutableMapRef and ImmutableSetRef, which consolidate Immutable[Map,Set] and its Factory. This may eventually replace Immtuable[Map,Set].
...
llvm-svn: 139967
2011-09-16 23:01:25 +00:00
Jim Grosbach
d0c435c23c
Thumb2 assembly parsing and encoding for SUB(immediate).
...
llvm-svn: 139966
2011-09-16 22:58:42 +00:00
Owen Anderson
bcfa9a6f89
Thumb2 pre-indexed loads/stores use the restricted GPR set for Rt.
...
llvm-svn: 139965
2011-09-16 22:42:36 +00:00
Owen Anderson
3ca958cd19
Fix disassembly of Thumb2 BFI instructions with bit range of [0, 32).
...
llvm-svn: 139964
2011-09-16 22:29:48 +00:00
Jim Grosbach
45715a7b9d
Thumb2 assembly parsing and encoding for STRT.
...
llvm-svn: 139963
2011-09-16 22:27:12 +00:00
Jim Grosbach
0876856aa0
Thumb2 assembly parsing and encoding for LDRHT/STRHT.
...
llvm-svn: 139962
2011-09-16 22:26:01 +00:00
Jim Grosbach
5c06de5bb9
Thumb2 assembly parsing and encoding for STREX/STREXB/STREXH/STREXD.
...
llvm-svn: 139961
2011-09-16 22:22:07 +00:00
Jim Grosbach
bb24913d7b
Thumb2 assembly parsing and encoding for STRD.
...
llvm-svn: 139960
2011-09-16 22:19:38 +00:00
Jim Grosbach
dfb9c30319
Simplify comment. There's no Thumb LDRD(register) encoding. That's ARM only.
...
llvm-svn: 139959
2011-09-16 22:18:42 +00:00
Owen Anderson
9764bced10
Add fixed bits to correctly distinguish Thumb2 SSAT/SSAT16's.
...
llvm-svn: 139958
2011-09-16 22:17:02 +00:00
Jim Grosbach
c0f032a570
Thumb2 assembly parsing and encoding for STRBT.
...
llvm-svn: 139957
2011-09-16 22:15:51 +00:00
Jim Grosbach
a46765300d
Thumb2 assembly parsing and encoding for STRH.
...
llvm-svn: 139956
2011-09-16 22:12:19 +00:00
Jim Grosbach
d372cb7312
Remove test of undocumented format.
...
llvm-svn: 139955
2011-09-16 22:09:58 +00:00
Jim Grosbach
85348bd8cd
Thumb2 assembly parsing and encoding for STRB.
...
llvm-svn: 139954
2011-09-16 22:09:19 +00:00
Bruno Cardoso Lopes
5389ed5dfb
Add mayLoad attribute to AVX convert instructions, since non of them
...
are declared with load patterns. This fix the crash in PR10941. No testcases,
since a fold is triggered and then converted back to the register form
afterwards.
llvm-svn: 139953
2011-09-16 22:02:14 +00:00
Jim Grosbach
b0c04e7335
Shuffle a few more thumb2 tests to match the comment headings.
...
llvm-svn: 139952
2011-09-16 22:01:18 +00:00
Jim Grosbach
21a073e4d3
Thumb2 tests for STR(literal), STR(register) and STR pre/post indexed immediate.
...
llvm-svn: 139951
2011-09-16 21:59:13 +00:00
Jim Grosbach
42042e405a
Shuffle a few tests around.
...
llvm-svn: 139950
2011-09-16 21:57:10 +00:00
Jim Grosbach
9c0b86a76d
Thumb2 assembly parsing and encoding for STR.
...
More addressing mode encoding bits. Handle pre increment for STR/STRB/STRH
and STR(register).
llvm-svn: 139949
2011-09-16 21:55:56 +00:00
Chad Rosier
f0d3786945
Add -rfunc and -rglob options to llvm-extract to support regular
...
expression matching.
llvm-svn: 139945
2011-09-16 21:09:17 +00:00
Jim Grosbach
5c3657a0e5
Tidy up. 80 columns.
...
llvm-svn: 139944
2011-09-16 21:09:00 +00:00
Owen Anderson
fe82365cb0
Fix disassembly of Thumb2 LDRSH with a #-0 offset.
...
llvm-svn: 139943
2011-09-16 21:08:33 +00:00
Jim Grosbach
92606beeae
Thumb2 assembly parsing and encoding for STR(immediate).
...
Add aliases for STRB/STRH while there. Tests forthcoming for those.
llvm-svn: 139942
2011-09-16 21:06:12 +00:00
Jim Grosbach
bb9825ffe3
Thumb2 assembly parsing and encoding for STMDB.
...
llvm-svn: 139940
2011-09-16 20:58:38 +00:00
Bruno Cardoso Lopes
2d406f02bf
Fix PR10884.
...
This PR basically reports a problem where a crash in generated code
happened due to %rbp being clobbered:
pushq %rbp
movq %rsp, %rbp
....
vmovmskps %ymm12, %ebp
....
movq %rbp, %rsp
popq %rbp
ret
Since Eric's r123367 commit, the default stack alignment for x86 32-bit
has changed to be 16-bytes. Since then, the MaxStackAlignmentHeuristicPass
hasn't been really used, but with AVX it becomes useful again, since per
ABI compliance we don't always align the stack to 256-bit, but only when
there are 256-bit incoming arguments.
ReserveFP was only used by this pass, but there's no RA target hook that
uses getReserveFP() to check for the presence of FP (since nothing was
triggering the pass to run, the uses of getReserveFP() were removed
through time without being noticed). Change this pass to use
setForceFramePointer, which is properly called by MachineFunction
hasFP method.
The testcase is very big and dependent on RA, not sure if it's worth
adding to test/CodeGen/X86.
llvm-svn: 139939
2011-09-16 20:58:28 +00:00
Jim Grosbach
099c9767c3
Thumb2 assembly parsing and encoding for STMIA.
...
llvm-svn: 139938
2011-09-16 20:50:13 +00:00
Eric Christopher
5883971d00
Move the AC_PROG_CC checks earlier in the configure file. The lateness
...
of the original check meant that configure was caching the default
CC check and using that instead of the result of AC_PROG_CC in both
configure checks and during compilation.
This wasn't affecting C++ so it was hard to notice.
Regenerate configure.
llvm-svn: 139937
2011-09-16 20:36:25 +00:00
Eric Christopher
2266c007e3
Migrate this to use clang by default as well.
...
llvm-svn: 139936
2011-09-16 20:36:22 +00:00
Eric Christopher
73ec21f301
We now look for clang, then llvm-gcc, then gcc as our compiler. We don't need
...
this anymore.
llvm-svn: 139935
2011-09-16 20:36:20 +00:00
Eric Christopher
a7077b6f7e
Have the llvm configure process look for clang, then llvm-gcc, and then gcc
...
on all platforms.
llvm-svn: 139934
2011-09-16 20:36:16 +00:00
Jim Grosbach
4646a740ab
Thumb2 assembly parsing and encoding for SSUB16/SSUB8.
...
llvm-svn: 139931
2011-09-16 18:52:36 +00:00
Jim Grosbach
8aee874bf1
Thumb2 assembly parsing and encoding for SSAX.
...
llvm-svn: 139929
2011-09-16 18:37:10 +00:00
Eli Friedman
f67d3ff8f3
Fix a minor bug in fs::create_directories. Patch by Albert Wong.
...
llvm-svn: 139928
2011-09-16 18:36:31 +00:00
Jim Grosbach
2a2d50b7ad
Thumb2 assembly parsing and encoding for SSAT16.
...
llvm-svn: 139927
2011-09-16 18:33:22 +00:00
Jim Grosbach
9d9c99ff07
Thumb2 assembly parsing and encoding for SSAT.
...
llvm-svn: 139926
2011-09-16 18:32:30 +00:00
Jim Grosbach
e6e7cd146a
Thumb2 assembly parsing and encoding for SRS.
...
llvm-svn: 139925
2011-09-16 18:25:22 +00:00
Jim Grosbach
5d1d50b8f7
Thumb2 assembly parsing and encoding for SMMUSD/SMUSDX.
...
llvm-svn: 139923
2011-09-16 18:08:48 +00:00
Jim Grosbach
0f90d9e161
Thumb2 assembly parsing and encoding for SMMULWB/SMULWT.
...
llvm-svn: 139922
2011-09-16 18:07:18 +00:00
Jim Grosbach
d73c6458de
Thumb2 assembly parsing and encoding for SMMULL.
...
llvm-svn: 139921
2011-09-16 18:05:48 +00:00
Jim Grosbach
4eea5d6284
Fix comment.
...
llvm-svn: 139919
2011-09-16 18:03:00 +00:00
Jim Grosbach
8e968d996b
Thumb2 assembly parsing and encoding for SMULBB/SMULBT/SMULTB/SMULTT.
...
llvm-svn: 139918
2011-09-16 18:02:36 +00:00
Jim Grosbach
8124284140
Thumb2 assembly parsing and encoding for SMMUAD'dib.
...
llvm-svn: 139917
2011-09-16 17:58:21 +00:00
Jim Grosbach
601597f329
Thumb2 assembly parsing and encoding for SMMUL/SMMULR.
...
llvm-svn: 139916
2011-09-16 17:56:06 +00:00
Owen Anderson
30fc19a6dd
Port over more Thumb2 assembly tests to disassembly tests.
...
llvm-svn: 139915
2011-09-16 17:56:04 +00:00
Owen Anderson
b489e3b408
Port over more Thumb2 assembly tests to disassembly tests.
...
llvm-svn: 139912
2011-09-16 17:22:48 +00:00
Jim Grosbach
1adc9c103c
Thumb2 assembly parsing and encoding for SMMLS/SMMLSR.
...
llvm-svn: 139911
2011-09-16 17:16:55 +00:00
Jim Grosbach
ffec9d7bd5
Thumb2 assembly parsing and encoding for SMMLA/SMMLAR.
...
llvm-svn: 139910
2011-09-16 17:15:18 +00:00
Jim Grosbach
c1826a9de0
Thumb2 assembly parsing and encoding for SMLSLD/SMLSLDX.
...
llvm-svn: 139909
2011-09-16 17:10:44 +00:00
Jim Grosbach
92738fe1b4
Thumb2 assembly parsing and encoding for SMLSD/SMLSDX.
...
llvm-svn: 139908
2011-09-16 17:08:45 +00:00
Jim Grosbach
53bc90d190
Thumb2 assembly parsing and encoding for SMLAWB/SMLAWT.
...
llvm-svn: 139907
2011-09-16 17:03:01 +00:00
Jim Grosbach
7a0b90b187
Thumb2 assembly parsing and encoding for SMLALD/SMLALDX.
...
llvm-svn: 139906
2011-09-16 16:58:03 +00:00
Jim Grosbach
e0891d6915
Thumb2 assembly parsing and encoding for SMLALBB/SMLALBT/SMLALTB/SMLALTT.
...
llvm-svn: 139905
2011-09-16 16:53:25 +00:00
Jim Grosbach
5e6d5cd7da
Kill some dead code.
...
llvm-svn: 139904
2011-09-16 16:45:40 +00:00
Jim Grosbach
6c45b75154
Tidy up a bit.
...
llvm-svn: 139903
2011-09-16 16:39:25 +00:00
Jim Grosbach
f9799d2c2d
Thumb2 assembly parsing and encoding for SMLAL.
...
llvm-svn: 139902
2011-09-16 16:38:00 +00:00
Andrew Trick
31004375fc
Test case trial and error. Not sure the proper way to check MBB names.
...
llvm-svn: 139900
2011-09-16 03:57:19 +00:00
Andrew Trick
b57d9c38a2
Reduced a stronger test case for coalescer bug PR10920.
...
llvm-svn: 139898
2011-09-16 03:46:49 +00:00
Benjamin Kramer
67b014b2c2
Namespacify.
...
llvm-svn: 139892
2011-09-16 00:35:06 +00:00
Jim Grosbach
b1feced676
Thumb2 assembly parsing and encoding for SMLAD/SMLADX.
...
llvm-svn: 139884
2011-09-16 00:09:37 +00:00
Jakob Stoklund Olesen
e2c92a3112
Spill mode: Hoist back-copies locally.
...
The leaveIntvAfter() function normally inserts a back-copy after the
requested instruction, making the back-copy kill the live range.
In spill mode, try to insert the back-copy before the last use instead.
That means the last use becomes the kill instead of the back-copy. This
lowers the register pressure because the last use can now redefine the
same register it was reading.
This will also improve compile time: The back-copy isn't a kill, so
hoisting it in hoistCopiesForSize() won't force a recomputation of the
source live range. Similarly, if the back-copy isn't hoisted by the
splitter, the spiller will not attempt hoisting it locally.
llvm-svn: 139883
2011-09-16 00:03:35 +00:00
Jakob Stoklund Olesen
e8339b2e63
Disable local spill hoisting for non-killing copies.
...
If the source register is live after the copy being spilled, there is no
point to hoisting it. Hoisting inside a basic block only serves to
resolve interferences by shortening the live range of the source.
llvm-svn: 139882
2011-09-16 00:03:33 +00:00
Jim Grosbach
5798cfddd7
Thumb2 assembly parsing and encoding for SMLABB/SMLABT/SMLATB/SMLATT.
...
llvm-svn: 139881
2011-09-16 00:00:23 +00:00
Jim Grosbach
6568ab142e
Thumb2 assembly parsing and encoding for SHSUB16/SHSUB8.
...
llvm-svn: 139880
2011-09-15 23:58:56 +00:00
Jim Grosbach
10a93ff8e0
Remove incorrect comments.
...
llvm-svn: 139877
2011-09-15 23:45:50 +00:00
Owen Anderson
a0c3b97221
Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations.
...
llvm-svn: 139876
2011-09-15 23:38:46 +00:00
Ivan Krasin
639222d090
use 64-bit types instead of off_t/size_t to avoid the issue when
...
gold plugin is built with Large File Support (sizeof(off_t) == 64 on i686)
and the rest of LLVM is built w/o Large File Support
(sizeof(off_t) == 32 on i686) which corrupts the stack.
llvm-svn: 139873
2011-09-15 23:13:00 +00:00
Bruno Cardoso Lopes
7b43568a93
Add a fixme note!
...
llvm-svn: 139872
2011-09-15 23:04:24 +00:00
Jim Grosbach
c38642b3e1
Thumb2 assembly parsing and encoding for SHADD16/SHADD8.
...
llvm-svn: 139871
2011-09-15 22:36:10 +00:00
Jim Grosbach
b08ce9b4c4
Thumb2 assembly parsing and encoding for SHASX/SHSAX.
...
llvm-svn: 139870
2011-09-15 22:34:29 +00:00
Eli Friedman
10f9ce2b7d
Minor cleanup.
...
llvm-svn: 139869
2011-09-15 22:26:18 +00:00
Benjamin Kramer
7215c58744
Unbreak the build for compilers that don't include cstdint everywhere.
...
llvm-svn: 139868
2011-09-15 22:26:16 +00:00
Jim Grosbach
e2481db60f
Thumb2 assembly parsing and encoding for SEV.W.
...
llvm-svn: 139866
2011-09-15 22:24:20 +00:00
Eli Friedman
ba912e06c2
Use a more efficient lowering for Unordered/Monotonic atomic load/store on Thumb1.
...
llvm-svn: 139865
2011-09-15 22:18:49 +00:00
Bruno Cardoso Lopes
c69d68a150
Add the remaining AVX versions of instructions to X86InstrInfo, this
...
time for describing high latency ones and for recognizting loads
from the same base pointer
llvm-svn: 139864
2011-09-15 22:15:52 +00:00
Jim Grosbach
9086a1ed4e
Thumb2 assembly parsing and encoding for SEL.
...
llvm-svn: 139861
2011-09-15 22:01:09 +00:00
Benjamin Kramer
112ec17e1b
DWARF: Reset the state after parsing a line table prologue and remove an unnecessary lookup.
...
llvm-svn: 139859
2011-09-15 21:59:13 +00:00
Jim Grosbach
0be3ede9e1
Thumb2 assembly parsing and encoding for SBFX.
...
llvm-svn: 139858
2011-09-15 21:58:42 +00:00
Bruno Cardoso Lopes
6b302955b1
Factor out partial register update checks for some SSE instructions.
...
Also add the AVX versions and add comments!
llvm-svn: 139854
2011-09-15 21:42:23 +00:00
Eli Friedman
ee8f14a799
Some legalization fixes for atomic load and store.
...
llvm-svn: 139851
2011-09-15 21:20:49 +00:00
Benjamin Kramer
4d9924f950
llvm-dwarfdump: Add an option to print out line info for a specific address
...
Usage:
$ llvm-dwarfdump -address=0x0000000100000ed4 a.out.dSYM/Contents/Resources/DWARF/a.out
xxx.c:6:0
llvm-svn: 139850
2011-09-15 21:17:40 +00:00
Jim Grosbach
d2868cf016
Add some missing 'CHECK' lines and tidy up others.
...
llvm-svn: 139849
2011-09-15 21:17:38 +00:00
Benjamin Kramer
49fc9ddae6
CommandLine: Add support for 64 bit unsigned integer options.
...
llvm-svn: 139848
2011-09-15 21:17:37 +00:00
Benjamin Kramer
901339d070
DWARF: Don't crash when looking up an invalid address.
...
llvm-svn: 139846
2011-09-15 21:08:54 +00:00
Jakob Stoklund Olesen
bceb9e5c05
Add an option to disable spill hoisting.
...
When -split-spill-mode is enabled, spill hoisting is performed by
SplitKit instead of by InlineSpiller. This hidden command line option
is for testing the splitter spill mode.
llvm-svn: 139845
2011-09-15 21:06:00 +00:00
Jim Grosbach
8620d97ad9
Thumb2 assembly parsing and encoding for SBC.
...
llvm-svn: 139844
2011-09-15 21:04:10 +00:00
Jim Grosbach
10725a202b
Thumb2 assembly parsing and encoding for SASX.
...
llvm-svn: 139843
2011-09-15 21:01:23 +00:00
Andrew Trick
74111ee07f
Reapply r139759. Disable IV rewriting by default. See PR10916.
...
llvm-svn: 139842
2011-09-15 20:58:37 +00:00
Jim Grosbach
4e91164049
Thumb2 assembly parsing and encoding for SADD16/SADD8.
...
llvm-svn: 139841
2011-09-15 20:57:39 +00:00
Jim Grosbach
eaa5265285
Thumb2 assembly parsing and encoding for RSB.
...
llvm-svn: 139839
2011-09-15 20:54:14 +00:00
Benjamin Kramer
2602ca67e8
DWARF: Put all the pieces we have together and provide a single accessor to DIContext that provides line information when given an address.
...
llvm-svn: 139836
2011-09-15 20:43:22 +00:00
Benjamin Kramer
679e1752f8
DWARF: Remove accessors that parse the whole line table section in one go, this can't possibly work.
...
The address size is specified by the compile unit associated with a line table, there is no global address size.
llvm-svn: 139835
2011-09-15 20:43:18 +00:00
Jim Grosbach
82dd698575
Thumb2 assembly parsing and encoding for RRX.
...
llvm-svn: 139831
2011-09-15 19:52:43 +00:00
Jim Grosbach
8082169d7c
Thumb2 assembly parsing and encoding for ROR.
...
llvm-svn: 139830
2011-09-15 19:50:04 +00:00
Jim Grosbach
4cbe06e7f8
Thumb2 assembly parsing and encoding for REV16/REVSH.
...
llvm-svn: 139828
2011-09-15 19:46:13 +00:00
Owen Anderson
233f130101
The the MC disassembler C API to print in verbose mode. Perhaps there should be a parameter to request verbose mode?
...
llvm-svn: 139821
2011-09-15 18:37:20 +00:00
Owen Anderson
d1814791ad
Add support for stored annotations to MCInst, and provide facilities for MC-based InstPrinters to print them out. Enhance the ARM and X86 InstPrinter's to do so in verbose mode.
...
llvm-svn: 139820
2011-09-15 18:36:29 +00:00
Jakob Stoklund Olesen
53e2e48de7
VirtRegMap is counting spill slots, not register spills.
...
Fix the stats counters to reflect that.
llvm-svn: 139819
2011-09-15 18:31:13 +00:00
Bruno Cardoso Lopes
fa1ca3070b
Change all checks regarding the presence of any SSE level to always
...
take into consideration the presence of AVX. This change, together with
the SSEDomainFix enabled for AVX, makes AVX codegen to always (hopefully)
emit the same code as SSE for 128-bit vector ops. I don't
have a testcase for this, but AVX now beats SSE in performance for
128-bit ops in the majority of programas in the llvm testsuite
llvm-svn: 139817
2011-09-15 18:27:36 +00:00
Bruno Cardoso Lopes
62d79875d3
Enable SSEDomainFix pass for AVX mode.
...
llvm-svn: 139816
2011-09-15 18:27:32 +00:00
Jakob Stoklund Olesen
c94c967656
Count correctly when a COPY turns into a spill or reload.
...
The number of spills could go negative since a folded COPY is just a
spill, and it may be eliminated.
llvm-svn: 139815
2011-09-15 18:22:52 +00:00
Jim Grosbach
ab154f0b65
Thumb2 assembly parsing and encoding for REV.
...
llvm-svn: 139813
2011-09-15 18:13:30 +00:00
Jim Grosbach
5c5c42bf76
Thumb2 assembly parsing and encoding for RBIT.
...
llvm-svn: 139811
2011-09-15 18:07:14 +00:00
Jim Grosbach
5e18a31da4
Thumb2 assembly parsing and encoding for signed saturating arithmetic insns.
...
llvm-svn: 139810
2011-09-15 18:06:15 +00:00
Benjamin Kramer
6dda032003
DWARF: Print line tables per compile unit, so they get the right address size.
...
llvm-svn: 139808
2011-09-15 18:02:20 +00:00
Jim Grosbach
ebdf32f907
Assmebler symbol attribute directives don't work on temporary symbols.
...
Assembler private local symbols aren't legal targets of symbol attributes,
so issue a diagnostic for them.
Based on patch by Stepan Dyatkovskiy.
llvm-svn: 139807
2011-09-15 17:56:49 +00:00
Jakob Stoklund Olesen
37eb6962c6
Count inserted spills and reloads more accurately.
...
Adjust counters when removing spill and reload instructions.
We still don't account for reloads being removed by eliminateDeadDefs().
llvm-svn: 139806
2011-09-15 17:54:28 +00:00
Benjamin Kramer
07d4b1c455
DWARF: wire up .debug_str dumping.
...
llvm-svn: 139799
2011-09-15 16:57:13 +00:00
Jim Grosbach
a9aa3c18e3
Handle missing newline at EOF more gracefully in MC AsmLexer.
...
If we see an EOF w/o a preceding end-of-line, return an EndOfStatement
token before returning the Eof token.
Based on patch by Stepan Dyatkovskiy.
llvm-svn: 139798
2011-09-15 16:52:06 +00:00
Jakob Stoklund Olesen
07b3503f8b
Trace through sibling PHIs in bulk.
...
When traceSiblingValue() encounters a PHI-def value created by live
range splitting, don't look at all the predecessor blocks. That can be
very expensive in a complicated CFG.
Instead, consider that all the non-PHI defs jointly dominate all the
PHI-defs. Tracing directly to all the non-PHI defs is much faster that
zipping around in the CFG when there are many PHIs with many
predecessors.
This significantly improves compile time for indirectbr interpreters.
llvm-svn: 139797
2011-09-15 16:41:12 +00:00
Jim Grosbach
d93c4ece15
ARM support the pre-UAL mnemonic 'qsubaddx' for 'qsax.'
...
llvm-svn: 139796
2011-09-15 16:16:50 +00:00
Jim Grosbach
3661859214
Re-order test.
...
llvm-svn: 139795
2011-09-15 16:04:13 +00:00
Jim Grosbach
22f76390a6
Thumb2 push/pop mnemonic recognition.
...
llvm-svn: 139794
2011-09-15 15:55:04 +00:00
Jakob Stoklund Olesen
ae4471af1b
Use getPrevSlot() instead of getPrevIndex().
...
The getPrevIndex() function moves to the same slot in the previous
instruction. For getVNInfoBefore(), we just need the previous slot in
the same instruction.
llvm-svn: 139793
2011-09-15 15:31:49 +00:00
Jakob Stoklund Olesen
b8b1d4c435
Speed up LiveIntervals::shrinkToUse with some caching.
...
Blocks with multiple PHI successors only need to go on the worklist
once. Use a SmallPtrSet to track the live-out blocks that have already
been handled. This is a lot faster than the two live range check we
would otherwise do.
Also stop recomputing hasPHIKill flags. Like RenumberValues(), it is
conservatively correct to leave them in, and they are not used for
anything important.
llvm-svn: 139792
2011-09-15 15:24:16 +00:00
Jakob Stoklund Olesen
fb75d78d33
Revert r139782, "RemoveCopyByCommutingDef doesn't need hasPHIKill()."
...
It does, after all.
RemoveCopyByCommutingDef rewrites the uses of one particular value
number in A. It doesn't know how to rewrite phi uses, so there can't be
any.
llvm-svn: 139787
2011-09-15 06:27:32 +00:00
Benjamin Kramer
9bca64ff2a
DWARF: Make DIE printing more bulletproof.
...
llvm-svn: 139786
2011-09-15 05:43:00 +00:00
Nick Lewycky
e8cdaddcf8
Despite what the GCC wiki says, a quick search shows that
...
DW_AT_GNU_template_name = 0x2110, not 0x2108. That would explain those
attr #0x2110 under the DW_TAG_GNU_template_template_param I'm seeing. Migrate
from documented values to reality.
llvm-svn: 139785
2011-09-15 05:30:55 +00:00
Nick Lewycky
ee674b3e3b
Add some more DWARF extensions from:
...
1. http://gcc.gnu.org/wiki/TemplateParmsDwarf
2. ftp://ftp.software.ibm.com/software/os390/czos/dwarf/mips_extensions.pdf
llvm-svn: 139784
2011-09-15 05:21:03 +00:00
Jakob Stoklund Olesen
4c099551f9
Stop verifying hasPHIKill() flags.
...
There is only one legitimate use remaining, in addIntervalsForSpills().
All other calls to hasPHIKill() are only used to update PHIKill flags.
The addIntervalsForSpills() function is part of the old spilling
framework, only used by linearscan.
llvm-svn: 139783
2011-09-15 05:16:30 +00:00
Jakob Stoklund Olesen
0499e7bbd0
RemoveCopyByCommutingDef doesn't need hasPHIKill().
...
Instead, let HasOtherReachingDefs() test for defs in B that overlap any
phi-defs in A as well. This test is slightly different, but almost
identical.
A perfectly precise test would only check those phi-defs in A that are
reachable from AValNo.
llvm-svn: 139782
2011-09-15 05:03:50 +00:00
Jakob Stoklund Olesen
dca022e377
It is safe to remat a value killed by phis.
...
The source live range is recomputed using shrinkToUses() which does
handle phis correctly. The hasPHIKill() condition was relevant in the
old days when ReMaterializeTrivialDef() tried to recompute the live
range itself.
The shrinkToUses() function will mark the original def as dead when no
more uses and phi kills remain. It is then removed by
runOnMachineFunction().
llvm-svn: 139781
2011-09-15 04:52:06 +00:00
Jakob Stoklund Olesen
e7ca8ecd92
Leave hasPHIKill flags alone in LiveInterval::RenumberValues.
...
It is conservatively correct to keep the hasPHIKill flags, even after
deleting PHI-defs.
The calculation can be very expensive after taildup has created a
quadratic number of indirectbr edges in the CFG, and the hasPHIKill flag
isn't used for anything after RenumberValues().
llvm-svn: 139780
2011-09-15 04:37:18 +00:00
Nick Lewycky
34368124aa
Update Dwarf enums list for DWARF 4.
...
Note that DW_TAG_rvalue_reference_type is officially 0x42, not 0x41.
llvm-svn: 139779
2011-09-15 04:23:44 +00:00
Benjamin Kramer
21a5092830
DWARF: Print the number for unknown abbrev fields.
...
Thanks Nick!
llvm-svn: 139778
2011-09-15 04:15:59 +00:00
Benjamin Kramer
4137b6a2b6
DWARF: Fail gracefully when encountering unknown values in an abbrev.
...
llvm-svn: 139777
2011-09-15 04:00:58 +00:00
Nick Lewycky
4d0449204e
Give structs with virtual methods a virtual destructor.
...
llvm-svn: 139776
2011-09-15 03:41:51 +00:00
Benjamin Kramer
21b6f1188f
DWARF: Silence GCC -Wsign-compare warning.
...
llvm-svn: 139775
2011-09-15 03:20:04 +00:00
Benjamin Kramer
123bfbbb73
DWARF: Fix indentation.
...
llvm-svn: 139774
2011-09-15 03:11:09 +00:00
Benjamin Kramer
a57c46aa49
DWARF: Include <algorithm> explicitly.
...
llvm-svn: 139773
2011-09-15 02:19:33 +00:00
Benjamin Kramer
5acab501de
DWARF: Add basic support for line tables.
...
The llvm-dwarfdump output isn't very verbose yet.
llvm-svn: 139771
2011-09-15 02:12:05 +00:00
Eli Friedman
888bea0b95
Make demanded-elt simplification for shufflevector slightly stronger. Spotted by inspection.
...
llvm-svn: 139768
2011-09-15 01:14:29 +00:00
Andrew Trick
76a86d3d4c
[regcoalescing] bug fix for RegistersDefinedFromSameValue.
...
An improper SlotIndex->VNInfo lookup was leading to unsafe copy removal.
Fixes PR10920 401.bzip2 miscompile with no IV rewrite.
llvm-svn: 139765
2011-09-15 01:09:33 +00:00
Eli Friedman
da5f010177
Fix the code creating VZEXT_LOAD so that it creates the right memoperand. Issue spotted in -debug output. I can't think of any practical effects at the moment, but it might matter if we start doing more aggressive alias analysis in CodeGen.
...
llvm-svn: 139758
2011-09-14 23:42:45 +00:00
Jim Grosbach
16680e1d33
Thumb2 assembly parsing and encoding for PLI.
...
llvm-svn: 139757
2011-09-14 23:29:05 +00:00
Jim Grosbach
2e2f6db24b
Thumb2 assembly parsing and encoding for PLD.
...
llvm-svn: 139756
2011-09-14 23:26:12 +00:00
Douglas Gregor
8b74454619
Update the comment for system_temp_directory() to indicate when it
...
will ignore the erasedOnReboot option, and properly escape the
backslash in "C:\TEMP". Thanks to Aaron and Francois.
llvm-svn: 139755
2011-09-14 23:21:47 +00:00
Jim Grosbach
801e06b768
Thumb2 assembly parsing and encoding for PKH.
...
llvm-svn: 139754
2011-09-14 23:16:41 +00:00
Jim Grosbach
521526845c
ARMv7a has the PKH instructions.
...
llvm-svn: 139753
2011-09-14 23:16:34 +00:00
Devang Patel
04d6d47865
Add support to emit debug info for C++0x nullptr type.
...
llvm-svn: 139751
2011-09-14 23:13:28 +00:00
Jim Grosbach
25ca53b268
ARM tighten up the register classes for the PKH instructions.
...
llvm-svn: 139748
2011-09-14 22:52:14 +00:00
Owen Anderson
d7791b961c
Fix a crasher in Thumb2 MOV-immediate encoding for certain inputs.
...
llvm-svn: 139747
2011-09-14 22:46:14 +00:00
Bill Wendling
bdaa57fe6d
Include limits.h to make sure PATH_MAX is known on Solaris 10.
...
Patch by Joakim Johansson!
llvm-svn: 139743
2011-09-14 21:49:42 +00:00
Jim Grosbach
61326e08ec
Thumb2 assembly parsing and encoding for ORR.
...
llvm-svn: 139742
2011-09-14 21:43:57 +00:00
Jim Grosbach
1fdddf767f
Thumb2 assembly parsing and encoding for ORN.
...
llvm-svn: 139741
2011-09-14 21:29:54 +00:00
Jim Grosbach
36acc8e984
Thumb2 assembly parsing and encoding for NOP.W.
...
llvm-svn: 139740
2011-09-14 21:26:25 +00:00
Jim Grosbach
752d6fd529
Thumb2 assembly parsing and encoding for MVN.
...
llvm-svn: 139739
2011-09-14 21:24:41 +00:00
Owen Anderson
f1e384421a
Nested IT blocks are UNPREDICTABLE. Mark them as such when disassembling them.
...
llvm-svn: 139736
2011-09-14 21:06:21 +00:00
Jim Grosbach
9c8b9932d6
Thumb2 assembly parsing and encoding for MUL.
...
llvm-svn: 139735
2011-09-14 21:00:40 +00:00
Benjamin Kramer
3266493603
DWARF: Generate the address lookup table from the DIE tree if .debug_aranges is not available.
...
Ported from LLDB.
llvm-svn: 139732
2011-09-14 20:52:27 +00:00
Douglas Gregor
123dc70c50
Add a simple routine to determine the typical system directory for
...
temporary data.
llvm-svn: 139725
2011-09-14 20:27:01 +00:00
Jim Grosbach
0ecd395095
Thumb2 assembly parsing and encoding for MSR/MRS.
...
Fix a bug in handling default flags for both ARM and Thumb encodings.
llvm-svn: 139721
2011-09-14 20:03:46 +00:00
Jim Grosbach
e9d80bbc1d
Thumb2 assembly parsing and encoding for MRC/MRC2/MRRC/MRRC2.
...
llvm-svn: 139717
2011-09-14 19:28:49 +00:00
Jim Grosbach
c39c2dfe15
Thumb2 assembly parsing and encoding for MOVT.
...
llvm-svn: 139715
2011-09-14 19:15:15 +00:00
Jim Grosbach
18b8b17579
Thumb2 assembly parsing for MOV in IT block.
...
Select the right 16 vs. 32 bit encoding in an IT block.
llvm-svn: 139714
2011-09-14 19:12:11 +00:00
Benjamin Kramer
a59d118b6c
DWARF: Reorder fields to reduce padding.
...
llvm-svn: 139712
2011-09-14 18:34:47 +00:00
Dan Gohman
fca43c21c3
Don't mark objc_retainBlock as nounwind. It calls user copy constructors
...
which could theoretically throw.
llvm-svn: 139710
2011-09-14 18:33:34 +00:00
Dan Gohman
d4b5e3a4d9
objc_retainBlock is not NoModRef because it can update forwarding pointers
...
in memory relevant to the optimizer. rdar://10050579.
llvm-svn: 139708
2011-09-14 18:13:00 +00:00
Jim Grosbach
3ac26b138b
ARM fix assembly parser handling of ranges in register lists.
...
Clean up register list handling in general a bit to explicitly check things
like all the registers being from the same register class.
rdar://8883573
llvm-svn: 139707
2011-09-14 18:08:35 +00:00
Benjamin Kramer
f915acc613
DWARF: Improve indentation of DIE dumping so it's easier to see the structure.
...
llvm-svn: 139705
2011-09-14 17:54:56 +00:00
Jakob Stoklund Olesen
811b9c475d
Ignore the cloning of unknown registers.
...
THe LRE_DidCloneVirtReg callback may be called with vitual registers
that RAGreedy doesn't even know about yet. In that case, there are no
data structures to update.
llvm-svn: 139702
2011-09-14 17:34:37 +00:00
Benjamin Kramer
973b5cde7e
llvm-dwarfdump: Make the "is debug info section" heuristic stricter so it doesn't accidentaly picks up the wrong section.
...
Also add some validation code to the aranges section parser.
Fixes PR10926.
llvm-svn: 139701
2011-09-14 17:28:13 +00:00
Akira Hatanaka
3efff6c9f8
Add comment.
...
llvm-svn: 139699
2011-09-14 17:22:51 +00:00
Jakob Stoklund Olesen
a98af39856
Hoist back-copies to the least busy dominator.
...
When a back-copy is hoisted to the nearest common dominator, keep
looking up the dominator tree for a less loopy dominator, and place the
back-copy there instead.
Don't do this when a single existing back-copy dominates all the others.
Assume the client knows what he is doing, and keep the dominating
back-copy.
This prevents us from hoisting back-copies into loops in most cases. If
a value is defined in a loop with multiple exits, we may still hoist
back-copies into that loop. That is the speed/size tradeoff.
llvm-svn: 139698
2011-09-14 16:45:39 +00:00
Jim Grosbach
1daf07338c
Move state var to private class member.
...
llvm-svn: 139697
2011-09-14 16:37:04 +00:00
Douglas Gregor
663c068d46
Add APInt support for converting to/from hexatridecimal strings
...
llvm-svn: 139695
2011-09-14 15:54:46 +00:00
Nadav Rotem
d748dbacb0
Add integer promotion support for vselect
...
llvm-svn: 139692
2011-09-14 14:42:15 +00:00
Craig Topper
ee8157cb41
Fix mem type for VEX.128 form of VROUNDP*. Remove filter preventing VROUND from being recognized by disassembler.
...
llvm-svn: 139691
2011-09-14 06:41:26 +00:00
Craig Topper
96e00e5a24
Make disassembling of VBLEND* print immediate as a XMM/YMM register name. Fixes PR10917.
...
llvm-svn: 139690
2011-09-14 05:55:28 +00:00
Craig Topper
503eef7641
Add test case for PR10851.
...
llvm-svn: 139689
2011-09-14 04:36:54 +00:00
Bruno Cardoso Lopes
483c269a33
One more patch towards JIT support for Mips.
...
- Add TSFlags for the instruction formats. The idea here is to use
as much encoding as possible from getBinaryCodeForInstr, and having
TSFLags formats for that would make it easier to encode most part
of the instructions (since Mips encodings are pretty straightforward)
- Improve the mips mechanism for compilation callback
- Add Mips specific code for invalidating the instruction cache
- Next patch will address wrong tablegen encoding
Commit msg added by my own but the patch is from Sasa Stankovic.
llvm-svn: 139688
2011-09-14 03:00:41 +00:00
Bruno Cardoso Lopes
d560b8c8e9
Teach the foldable tables about 128-bit AVX instructions and make the
...
alignment check for 256-bit classes more strict. There're no testcases
but we catch more folding cases for AVX while running single and multi
sources in the llvm testsuite.
Since some 128-bit AVX instructions have different number of operands
than their SSE counterparts, they are placed in different tables.
256-bit AVX instructions should also be added in the table soon. And
there a few more 128-bit versions to handled, which should come in
the following commits.
llvm-svn: 139687
2011-09-14 02:36:58 +00:00
Bruno Cardoso Lopes
333a59eced
Vector shuffle mask <i32 4, i32 5, i32 2, i32 3> should yield "movsd", not "movss".
...
llvm-svn: 139686
2011-09-14 02:36:14 +00:00
Benjamin Kramer
a9e7fb678d
Don't rely in <algorithm> being pulled in transitively.
...
llvm-svn: 139684
2011-09-14 01:27:48 +00:00
Benjamin Kramer
75d1cf3391
Object: make the following changes into SymbolRef
...
- Add enum SymbolType and function getSymbolType()
- Add function isGlobal() - it's returns true for symbols that can be used in another objects, such as library functions.
- Rename function getAddress() to getOffset() and add new function getAddress(), because currently getAddress() returns section offset of symbol first byte. new getAddress() return symbol address.
- Change usage SymbolRef::getAddress() to getOffset() in tools/llvm-nm and tools/llvm-objdump.
Patch by Danil Malyshev!
llvm-svn: 139683
2011-09-14 01:22:52 +00:00
Benjamin Kramer
91ead3c1f5
Remove unimplemented function prototypes from PathV2. They can be readded when someone cares enough.
...
Patch by Aaron Ballman!
llvm-svn: 139682
2011-09-14 01:14:36 +00:00
Benjamin Kramer
a6002fd920
DWARF: Port support for parsing .debug_aranges section from LLDB and wire it up to llvm-dwarfdump.
...
This is only one half of it, the part that caches address ranges from the DIEs when .debug_aranges is
not available will be ported soon.
llvm-svn: 139680
2011-09-14 01:09:52 +00:00
Benjamin Kramer
557a81e9d7
ObjectFile: Add support for mach-o-style dSYM companion files.
...
llvm-svn: 139676
2011-09-14 00:39:22 +00:00
Devang Patel
edc216515e
Remove ancient debug info constructs from test cases, they are not relevant to test case's main objective.
...
llvm-svn: 139675
2011-09-14 00:29:50 +00:00
Devang Patel
9cd29103aa
Remove unnecessary old test.
...
llvm-svn: 139674
2011-09-14 00:28:54 +00:00