Jakob Stoklund Olesen
74f9e359dd
Keep track of register masks in LiveIntervalAnalysis.
...
Build an ordered vector of register mask operands (i.e., calls) when
computing live intervals. Provide a checkRegMaskInterference() function
that computes a bit mask of usable registers for a live range.
This is a quick way of determining of a live range crosses any calls,
and restricting it to the callee saved registers if it does.
Previously, we had to discover call clobbers for each candidate register
independently.
llvm-svn: 150077
2012-02-08 17:33:45 +00:00
Duncan Sands
230a53240a
Use Use::set rather than finding the operand number of the use
...
and setting that.
llvm-svn: 150074
2012-02-08 14:10:53 +00:00
Benjamin Kramer
74f9379254
PathV2: Remove static StringRef ctors.
...
llvm-svn: 150071
2012-02-08 13:13:47 +00:00
Elena Demikhovsky
87a6e08d3a
Fixed a bug in printing "cmp" pseudo ops.
...
> This IR code
> %res = call <8 x float> @llvm.x86.avx.cmp.ps.256(<8 x float> %a0, <8 x float> %a1, i8 14)
> fails with assertion:
>
> llc: X86ATTInstPrinter.cpp:62: void llvm::X86ATTInstPrinter::printSSECC(const llvm::MCInst*, unsigned int, llvm::raw_ostream&): Assertion `0 && "Invalid ssecc argument!"' failed.
> 0 llc 0x0000000001355803
> 1 llc 0x0000000001355dc9
> 2 libpthread.so.0 0x00007f79a30575d0
> 3 libc.so.6 0x00007f79a23a1945 gsignal + 53
> 4 libc.so.6 0x00007f79a23a2f21 abort + 385
> 5 libc.so.6 0x00007f79a239a810 __assert_fail + 240
> 6 llc 0x00000000011858d5 llvm::X86ATTInstPrinter::printSSECC(llvm::MCInst const*, unsigned int, llvm::raw_ostream&) + 119
I added the full testing for all possible pseudo-ops of cmp.
I extended X86AsmPrinter.cpp and X86IntelInstPrinter.cpp.
You'l also see lines alignments (unrelated to this fix) in X86IselLowering.cpp from my previous check-in.
llvm-svn: 150068
2012-02-08 08:37:26 +00:00
Craig Topper
f19c739d2d
Remove a couple unneeded intrinsic patterns
...
llvm-svn: 150067
2012-02-08 08:29:30 +00:00
Craig Topper
6dbd5e534c
Remove GCC builtins for vpermilp* intrinsics as clang no longer needs them. Custom lower the intrinsics to the vpermilp target specific node and remove intrinsic patterns.
...
llvm-svn: 150060
2012-02-08 06:36:57 +00:00
Chad Rosier
b70d1dfae6
[fast-isel] Add support for SUBs with non-legal types.
...
llvm-svn: 150047
2012-02-08 02:45:44 +00:00
Chad Rosier
1ef78d6989
[fast-isel] Add support for ORs with non-legal types.
...
llvm-svn: 150045
2012-02-08 02:29:21 +00:00
Andrew Trick
bbd036d602
Added MachineInstr::isBundled() to check if an instruction is part of a bundle.
...
llvm-svn: 150044
2012-02-08 02:17:25 +00:00
Andrew Trick
a8f16ce003
misched: bug in debug output.
...
llvm-svn: 150043
2012-02-08 02:17:21 +00:00
Andrew Trick
b2b5b758d9
stale comment
...
llvm-svn: 150041
2012-02-08 02:17:16 +00:00
Eric Christopher
4330499af4
Add support for a temporary forward decl type. We want this so we
...
can rauw forward declarations if we decide to emit the full type.
Part of rdar://10809898
llvm-svn: 150024
2012-02-08 00:22:26 +00:00
Devang Patel
5b37f2548b
Remove tabs.
...
llvm-svn: 150022
2012-02-08 00:17:07 +00:00
Chad Rosier
26610906f0
[fast-isel] Add support for indirect branches.
...
llvm-svn: 150014
2012-02-07 23:56:08 +00:00
Devang Patel
c8bfdb1c36
Remove tabs.
...
llvm-svn: 150012
2012-02-07 23:33:58 +00:00
Evan Cheng
ab4ad855cc
Use LEA to adjust stack ptr for Atom. Patch by Andy Zhang.
...
llvm-svn: 150008
2012-02-07 22:50:41 +00:00
David Blaikie
7503072263
Correct use of const in ParseCommandLineOptions
...
llvm-svn: 149999
2012-02-07 19:36:01 +00:00
Evan Cheng
653966d99b
Do not fold ADD / SUB into load / store (to form pre-indexed, post-indexed
...
load / store) if the ADD / SUB has a live definition of CPSR.
Bug reported by David Meyer. Alas, no test case.
llvm-svn: 149970
2012-02-07 07:09:28 +00:00
Craig Topper
a8a69356e1
Add instruction selection for 256-bit VPSHUFD and 128-bit VPERMILPS/VPERMILPD.
...
llvm-svn: 149968
2012-02-07 06:28:42 +00:00
Craig Topper
639b152ca5
Convert assert(0) to llvm_unreachable
...
llvm-svn: 149967
2012-02-07 05:05:23 +00:00
Craig Topper
11bcb12b5e
Convert assert(0) to llvm_unreachable
...
llvm-svn: 149961
2012-02-07 02:50:20 +00:00
Bill Wendling
085bdb73fa
Cache the sizes of vectors instead of calculating them all over the place.
...
llvm-svn: 149954
2012-02-07 01:48:12 +00:00
Bill Wendling
4183d7faf3
Reserve space in these vectors to prevent having to grow the array too
...
much. This gets us an addition 0.9% on 445.gobmk.
llvm-svn: 149952
2012-02-07 01:27:51 +00:00
Derek Schuff
68d03e0b7c
Fix win32 build breakage from bitcode streaming patch
...
llvm-svn: 149941
2012-02-07 00:28:46 +00:00
Chad Rosier
945ab43c4f
[fast-isel] Add support for ADDs with non-legal types.
...
llvm-svn: 149934
2012-02-06 23:50:07 +00:00
Andrew Trick
4a090f62a5
Expose TargetPassConfig to PEI Pass
...
llvm-svn: 149927
2012-02-06 22:51:18 +00:00
Andrew Trick
4f5b6f7f93
Add TargetPassConfig to the PassManager for use inside passes
...
llvm-svn: 149926
2012-02-06 22:51:15 +00:00
Kostya Serebryany
f4be131943
The patch resolves the conflict between AddressSanitizer and load widening (GVN).
...
The problem initially reported by Mozilla folks (http://code.google.com/p/address-sanitizer/issues/detail?id=20 ),
but it also prevents us from enabling LLVM bootstrap with AddressSanitizer.
llvm-svn: 149925
2012-02-06 22:48:56 +00:00
Nick Lewycky
4673078750
Fix comment-rulers.
...
llvm-svn: 149922
2012-02-06 22:41:47 +00:00
Jakob Stoklund Olesen
f4de650226
Don't explicitly renumber slot indices.
...
We have automatic local renumbering now.
llvm-svn: 149920
2012-02-06 22:37:56 +00:00
Derek Schuff
f522835510
Enable streaming of bitcode
...
This CL delays reading of function bodies from initial parse until
materialization, allowing overlap of compilation with bitcode download.
llvm-svn: 149918
2012-02-06 22:30:29 +00:00
Chris Lattner
7a6bd0185e
Remove some dead code and tidy things up now that vectors use ConstantDataVector
...
instead of always using ConstantVector.
llvm-svn: 149912
2012-02-06 21:56:39 +00:00
Jakob Stoklund Olesen
114e82f2e5
Make sure a reserved register has a live interval before merging.
...
llvm-svn: 149910
2012-02-06 21:52:18 +00:00
Bill Wendling
8c63e349bc
[unwind removal] Remove all of the code for the dead 'unwind' instruction. There
...
were no 'unwind' instructions being generated before this, so this is in effect
a no-op.
llvm-svn: 149906
2012-02-06 21:44:22 +00:00
Bill Wendling
63c3ac12cd
[unwind removal] Don't write out the dead 'unwind' instruction.
...
llvm-svn: 149905
2012-02-06 21:30:37 +00:00
Bill Wendling
4e92f798ff
[unwind removal] We no longer have 'unwind' instructions being generated, so
...
remove the code that handles them.
llvm-svn: 149901
2012-02-06 21:16:41 +00:00
Bill Wendling
d1ff865f99
'unwind' is a keyword, not an instruction.
...
llvm-svn: 149898
2012-02-06 21:02:43 +00:00
Bill Wendling
71d920b088
[unwind removal] Remove the 'unwind' instruction parsing bits.
...
llvm-svn: 149897
2012-02-06 20:50:27 +00:00
Chandler Carruth
a05c6dc02c
Introduce helpers to compute the 32-bit varaints and 64-bit variants of
...
some architectures. These are useful for interacting with multiarch or
bi-arch GCC (or GCC-based) toolchains.
llvm-svn: 149895
2012-02-06 20:46:33 +00:00
Derek Schuff
c4f1c049cd
Test commit; also removes some trailing whitespace
...
llvm-svn: 149887
2012-02-06 19:03:04 +00:00
Devang Patel
864da4b549
DebugInfo: Provide a new hook to encode relationship between a property and an ivar.
...
llvm-svn: 149874
2012-02-06 17:49:43 +00:00
Benjamin Kramer
3443a8294a
X86: Don't call malloc for 4 bits. No functionality change.
...
llvm-svn: 149866
2012-02-06 12:06:18 +00:00
Benjamin Kramer
8f25434574
Make helper static.
...
llvm-svn: 149865
2012-02-06 11:28:19 +00:00
Benjamin Kramer
db46bec410
Hexagon: Remove forbidden iostream includes (it introduces static initializers)
...
Reorder includes while at it.
llvm-svn: 149863
2012-02-06 10:19:29 +00:00
Nick Lewycky
f8600d16d3
Split part of EvaluateFunction into a new EvaluateBlock method. No functionality
...
change.
llvm-svn: 149861
2012-02-06 08:24:44 +00:00
Craig Topper
9de7cec5b8
Move some llvm_unreachable's from r149849 out of switch statements to satisfy -Wcovered-switch-default
...
llvm-svn: 149860
2012-02-06 08:17:43 +00:00
Craig Topper
74416bcd0e
Add shuffle decoding support for 256-bit pshufd. Merge vpermilp* and pshufd decoding.
...
llvm-svn: 149859
2012-02-06 07:17:51 +00:00
Sebastian Pop
35b54121b3
fix indentation
...
llvm-svn: 149857
2012-02-06 05:29:32 +00:00
Sebastian Pop
6110622adf
fix typo
...
llvm-svn: 149856
2012-02-06 05:29:29 +00:00
Craig Topper
e18a06be4d
Convert assert(0) to llvm_unreachable
...
llvm-svn: 149849
2012-02-05 22:14:15 +00:00