Richard Smith
9b355262f5
Unbreak cmake build after r147115.
...
llvm-svn: 147117
2011-12-22 01:03:35 +00:00
Rafael Espindola
ee837037ee
Move the ARM specific parts of the ELF writer to Target/ARM.
...
llvm-svn: 147115
2011-12-22 00:37:50 +00:00
Rafael Espindola
943ba34584
getEFlags is const.
...
llvm-svn: 147114
2011-12-22 00:21:50 +00:00
Lang Hames
4258202987
Fixed typo.
...
llvm-svn: 147113
2011-12-22 00:12:51 +00:00
Jim Grosbach
1b11b334a4
ARM NEON mnemonic aliase for vrecpeq.
...
llvm-svn: 147109
2011-12-21 23:52:37 +00:00
Jim Grosbach
7d31680e2d
ARM VFP optional data type on VMOV GPR<-->SPR.
...
llvm-svn: 147104
2011-12-21 23:24:15 +00:00
Jim Grosbach
35b5afad26
ARM NEON optional data type on VSWP instructions.
...
llvm-svn: 147103
2011-12-21 23:09:28 +00:00
Jim Grosbach
64df852f5b
ARM NEON mnemonic aliases for vzipq and vswpq.
...
llvm-svn: 147102
2011-12-21 23:04:33 +00:00
Jakub Staszak
4226104d8a
Revert patch from 147090. There is not point to make code less readable if we
...
don't get any serious benefit there.
llvm-svn: 147101
2011-12-21 23:02:08 +00:00
Jim Grosbach
88eacffd72
ARM asm parser should be more lenient w/ .thumb_func directive.
...
Rather than require the symbol to be explicitly an argument of the directive,
allow it to look ahead and grab the symbol from the next non-whitespace
line.
rdar://10611140
llvm-svn: 147100
2011-12-21 22:30:16 +00:00
Dan Gohman
17bd9795e9
Fix a copy+pasto. No testcase, because the symptoms of dereferencing
...
an invalid iterator aren't reproducible. rdar://10614085.
llvm-svn: 147098
2011-12-21 21:43:50 +00:00
Jim Grosbach
2bbc41fa26
Thumb2 assembly parsing of 'mov rd, rn, rrx'.
...
Maps to the RRX instruction. Missed this case earlier.
rdar://10615373
llvm-svn: 147096
2011-12-21 21:04:19 +00:00
Chad Rosier
98251404f7
Fix 80-column violations.
...
llvm-svn: 147095
2011-12-21 20:59:09 +00:00
Jim Grosbach
91faf5d15f
Thumb2 assembly parsing of 'mov(register shifted register)' aliases.
...
These map to the ASR, LSR, LSL, ROR instruction definitions.
rdar://10615373
llvm-svn: 147094
2011-12-21 20:54:00 +00:00
Nick Lewycky
cedb6b6ec4
Continue counting intrinsics as instructions (except when they aren't, such as
...
debug info) and for being vector operations. Fixes regression from r147037.
llvm-svn: 147093
2011-12-21 20:26:03 +00:00
Nick Lewycky
f147ddb0e6
Fix typo and spacing, no functionality change.
...
llvm-svn: 147092
2011-12-21 20:21:55 +00:00
Jakub Staszak
3a3ffa2d1e
- Change a few operator[] to lookup which is cheaper.
...
- Add some constantness.
llvm-svn: 147090
2011-12-21 20:18:54 +00:00
Lang Hames
6bbf0c8da6
Oops - LiveIntervalUnion.cpp file does use std::find. Moving STL header include to LiveIntervalUnion.cpp file.
...
llvm-svn: 147089
2011-12-21 20:16:11 +00:00
Lang Hames
76eeaf60a9
Remove disused STL header include.
...
llvm-svn: 147088
2011-12-21 20:12:54 +00:00
Rafael Espindola
6442ed0e79
Switch from WriteEFlags to getEFlags in preparation for moving it
...
to Target/.
llvm-svn: 147087
2011-12-21 20:09:46 +00:00
Jakob Stoklund Olesen
893037ce23
Move common code into an MRI function.
...
llvm-svn: 147071
2011-12-21 19:50:05 +00:00
Jim Grosbach
f7236d1084
ARM NEON assmebly parsing for VLD2 to all lanes instructions.
...
llvm-svn: 147069
2011-12-21 19:40:55 +00:00
Chad Rosier
4e4bfcaa90
No case stmt for BUILD_VECTOR in PerformDAGCombine(), so I assume this isn't
...
necessary. Please chime in if I'm mistaken.
llvm-svn: 147065
2011-12-21 19:14:52 +00:00
Chad Rosier
c2f31859cc
Fix a couple of copy-n-paste bugs. Noticed by George Russell!
...
llvm-svn: 147064
2011-12-21 18:56:22 +00:00
Manuel Klimek
2147506d8b
Changes the JSON parser to use the SourceMgr.
...
Diagnostics are now emitted via the SourceMgr and we use MemoryBuffer
for buffer management. Switched the code to make use of the trailing
'0' that MemoryBuffer guarantees where it makes sense.
llvm-svn: 147063
2011-12-21 18:16:39 +00:00
Rafael Espindola
8c9b0dea02
Move the X86 specific bits of the ELF writer to the Target/X86 directory.
...
Other targets will follow shortly.
llvm-svn: 147060
2011-12-21 17:30:17 +00:00
Rafael Espindola
f9c7f9e3f3
Reduce the exposure of Triple::OSType in the ELF object writer. This will
...
avoid including ADT/Triple.h in many places when the target specific bits are
moved.
llvm-svn: 147059
2011-12-21 17:00:36 +00:00
Rafael Espindola
2334fc676a
Add const.
...
llvm-svn: 147054
2011-12-21 14:48:04 +00:00
Rafael Espindola
318dc6e7f4
Small refactoring so that RelocNeedsGOT can stay in the target independent
...
side when the target specific bits are moved to the Target directory.
llvm-svn: 147053
2011-12-21 14:26:29 +00:00
Manuel Klimek
9f612635f4
Removes unused field TheError from LLLexer.
...
llvm-svn: 147049
2011-12-21 10:02:45 +00:00
Craig Topper
496932a88a
Remove mode specific disassembler classes and just call X86GenericDisassembler constructor with appropriate argument in the creation functions. This removes a few tables that needed to be anchored.
...
llvm-svn: 147046
2011-12-21 08:06:52 +00:00
Craig Topper
e2e670bee5
Fix typo in a couple comments
...
llvm-svn: 147045
2011-12-21 06:30:53 +00:00
Nick Lewycky
98758f0c39
A call to a function marked 'noinline' is not an inline candidate. The sole
...
call site of an intrinsic is also not an inline candidate. While here, make it
more obvious that this code ignores all intrinsics. Noticed by inspection!
llvm-svn: 147037
2011-12-21 06:06:30 +00:00
Nick Lewycky
9adbd36737
Make some intrinsics safe to speculatively execute.
...
llvm-svn: 147036
2011-12-21 05:52:02 +00:00
Evan Cheng
fb22f64814
Fix a couple of copy-n-paste bugs. Noticed by George Russell.
...
llvm-svn: 147032
2011-12-21 03:04:10 +00:00
Jim Grosbach
2c2140a128
ARM assembly parsing allows constant expressions for lane indices.
...
llvm-svn: 147028
2011-12-21 01:19:23 +00:00
Eric Christopher
288c5842b8
Regenerate.
...
llvm-svn: 147027
2011-12-21 00:52:44 +00:00
Jim Grosbach
6bd1044b03
ARM NEON VLD2 assembly parsing for structure to all lanes, non-writeback.
...
llvm-svn: 147025
2011-12-21 00:38:54 +00:00
Akira Hatanaka
4ab17eaca0
Fix bug in zero-store peephole pattern reported in pr11615.
...
The patch and test case were originally written by Mans Rullgard.
llvm-svn: 147024
2011-12-21 00:31:10 +00:00
Akira Hatanaka
0af792d12b
Expand 64-bit CTLZ nodes if target architecture does not support it. Add test
...
case for DCLO and DCLZ.
llvm-svn: 147022
2011-12-21 00:20:27 +00:00
Akira Hatanaka
6454b0ffc1
Expand 64-bit CTPOP and CTTZ.
...
llvm-svn: 147021
2011-12-21 00:14:05 +00:00
Akira Hatanaka
0cc0498ea1
Expand 64-bit atomic load and store.
...
llvm-svn: 147019
2011-12-21 00:02:58 +00:00
Akira Hatanaka
fb94688c7a
Test case for r147017.
...
llvm-svn: 147018
2011-12-20 23:58:36 +00:00
Akira Hatanaka
2d293d2f4c
Add definition of DSBH (Double Swap Bytes within Halfwords) and
...
DSHD (Double Swap Halfwords within Doublewords). Add a pattern which replaces
64-bit bswap with a DSBH and DSHD pair.
llvm-svn: 147017
2011-12-20 23:56:43 +00:00
Akira Hatanaka
fa96454cb4
Add definition of WSBH (Word Swap Bytes within Halfwords), which is an
...
instruction supported by mips32r2, and add a pattern which replaces bswap with
a ROTR and WSBH pair.
WSBW is removed since it is not an instruction the current architectures
support.
llvm-svn: 147015
2011-12-20 23:47:44 +00:00
Akira Hatanaka
6f31d220e7
64-bit uint-fp conversion nodes are expanded.
...
llvm-svn: 147014
2011-12-20 23:40:56 +00:00
Akira Hatanaka
02fe8adb97
Enable custom lowering DYNAMIC_STACKALLOC nodes.
...
llvm-svn: 147013
2011-12-20 23:35:46 +00:00
Akira Hatanaka
507cdacdde
Set the correct stack pointer register that should be saved or restored.
...
llvm-svn: 147012
2011-12-20 23:28:36 +00:00
Jim Grosbach
0768f2c420
Enable and fix a test.
...
llvm-svn: 147011
2011-12-20 23:20:00 +00:00
Chris Lattner
4ed5f7791d
Fix a nasty bug in the type remapping stuff that I added that is breaking kc++ on
...
the build bot in some cases. The basic issue happens when a source module contains
both a "%foo" type and a "%foo.42" type. It will see the later one, check to see if
the destination module contains a "%foo" type, and it will return true... because
both the source and destination modules are in the same LLVMContext. We don't want
to map source types to other source types, so don't do the remapping if the mapped
type came from the source module.
Unfortunately, I've been unable to reduce a decent testcase for this, kc++ is
pretty great that way.
llvm-svn: 147010
2011-12-20 23:14:57 +00:00