Nadav Rotem
af5643de3c
[VECTOR-SELECT] Address one of the bugs in pr10902.
...
Vector SetCC result types need to be type-legalized.
This code worked before because scalar result types are known to be legal.
llvm-svn: 140249
2011-09-21 14:34:38 +00:00
Nadav Rotem
8fc9d777a3
Insert a sanity check on the combining of x86 truncing-store nodes. This comes to replace the problematic check that was removed in r139995.
...
llvm-svn: 140246
2011-09-21 08:45:10 +00:00
Richard Trieu
a675de9fac
Change:
...
assert(!"error message");
To:
assert(0 && "error message");
which is more consistant across the code base.
llvm-svn: 140234
2011-09-21 03:09:09 +00:00
Akira Hatanaka
88ce0f7440
Add a base class for Mips TargetMachines and add Mips64 TargetMachines.
...
llvm-svn: 140233
2011-09-21 03:00:58 +00:00
Akira Hatanaka
a936c212fa
Set ABI if it hasn't been set on the command line.
...
Check if architecture & ABI combination is valid.
llvm-svn: 140230
2011-09-21 02:45:29 +00:00
Akira Hatanaka
31b9daf57e
Fix typo.
...
llvm-svn: 140229
2011-09-21 02:24:25 +00:00
Andrew Trick
c94573ded6
Lower ARM adds/subs to add/sub after adding optional CPSR operand.
...
This is still a hack until we can teach tblgen to generate the
optional CPSR operand rather than an implicit CPSR def. But the
strangeness is now limited to the selection DAG. ADD/SUB MI's no
longer have implicit CPSR defs, nor do we allow flag setting variants
of these opcodes in machine code. There are several corner cases to
consider, and getting one wrong would previously lead to nasty
miscompilation. It's not the first time I've debugged one, so this
time I added enough verification to ensure it won't happen again.
llvm-svn: 140228
2011-09-21 02:20:46 +00:00
Andrew Trick
5b514628ed
whitespace
...
llvm-svn: 140227
2011-09-21 02:17:37 +00:00
Owen Anderson
fbec62c99e
In the disassembler C API, be careful not to confuse the comment streamer that the disassembler outputs annotations on with the streamer that the InstPrinter will print them on.
...
llvm-svn: 140217
2011-09-21 00:25:23 +00:00
Akira Hatanaka
eb3e16d39f
Change the names of functions isMips* to hasMips*.
...
llvm-svn: 140214
2011-09-20 23:53:09 +00:00
Eli Friedman
2599a202e2
Make sure IPSCCP never marks a tracked call as overdefined in SCCPSolver::ResolvedUndefsIn. If we do, we can end up in a situation where a function is resolved to return a constant, but the caller is marked overdefined, which confuses the code later.
...
<rdar://problem/9956541> (again).
llvm-svn: 140210
2011-09-20 23:28:51 +00:00
Bruno Cardoso Lopes
1ffbef8ad1
Add a DAGCombine for subvector extracts to remove useless chains of
...
subvector inserts and extracts. Initial patch by Rackover, Zvi with
some tweak done by me.
llvm-svn: 140204
2011-09-20 23:19:33 +00:00
Bruno Cardoso Lopes
629e7c2410
Revert r140097, working on a better approach
...
llvm-svn: 140203
2011-09-20 23:19:29 +00:00
Ivan Krasin
1fbce6b02d
lib/Linker: add support of deps which does not end with ".so".
...
It happens (for example) when you want to have a dependency on the .so
with the specific version, like liblzma.so.1.0.0 or
libcrypto.so.0.9.8.
llvm-svn: 140201
2011-09-20 22:52:35 +00:00
Bruno Cardoso Lopes
035414367a
Simplify max/minp[s|d] dagcombine matching
...
llvm-svn: 140199
2011-09-20 22:34:45 +00:00
Bill Wendling
32444d6a28
Relax this condition.
...
Some passes require breaking critical edges before they're called. Don't
segfault because of that.
llvm-svn: 140196
2011-09-20 22:28:17 +00:00
Bill Wendling
5860a42997
Place the check for an exit landing pad where it will be run on both code paths through the if-then-else.
...
llvm-svn: 140195
2011-09-20 22:27:16 +00:00
Bill Wendling
9e1900bcf7
Omit extracting a loop if one of the exits is a landing pad.
...
The landing pad must accompany the invoke when it's extracted. However, if it
does, then the loop isn't properly extracted. I.e., the resulting extraction has
a loop in it. The extracted function is then extracted, etc. resulting in an
infinite loop.
llvm-svn: 140193
2011-09-20 22:23:09 +00:00
Bob Wilson
817b059c93
Remove the hack to check UNAME_RELEASE when identifying the Darwin version.
...
This was only needed to locate llvm-gcc's installation directory when clang
falls back to run llvm-gcc for i386 kexts. As of clang svn r140187, we're
now just searching paths with several different Darwin versions on either
side of the current version, so this is no longer needed.
llvm-svn: 140188
2011-09-20 22:05:56 +00:00
Bruno Cardoso Lopes
b3eab8c22d
Tidy up a bit more, fix tab and remove trailing whitespaces
...
llvm-svn: 140186
2011-09-20 21:45:26 +00:00
Bruno Cardoso Lopes
906f64c461
The wrong relocation was being emitted for several SSSE3 instructions.
...
This fixes PR10963. Thanks to Benjamin for finding the wrong tablegen
declaration.
llvm-svn: 140184
2011-09-20 21:39:21 +00:00
Bruno Cardoso Lopes
dab989502d
Tidy up code!
...
llvm-svn: 140183
2011-09-20 21:39:06 +00:00
Evan Cheng
ead45e2ba6
Fix a bug introduced during refactoring a couple of months ago. Cortex-M3 does not support Thumb2 dsp instructions. rdar://10152911.
...
llvm-svn: 140181
2011-09-20 21:38:18 +00:00
Akira Hatanaka
4dfc257283
Initial Mips64 support. Patch by Liu with some modifications.
...
llvm-svn: 140178
2011-09-20 20:28:08 +00:00
Bill Wendling
cf8d277150
Check the terminator, not the basic block.
...
llvm-svn: 140176
2011-09-20 20:20:50 +00:00
Bill Wendling
1ac89f2739
When extracting a basic block that ends in an 'invoke' instruction, we need to
...
extract its associated landing pad block as well. However, that landing pad
block may have more than one predecessor. So split the landing pad block so that
individual landing pads have only one predecessor.
This type of transformation may produce a false positive with bugpoint.
llvm-svn: 140173
2011-09-20 19:10:24 +00:00
Bill Wendling
66d2eeb730
Use ArrayRef instead of an explicit 'const std::vector &'.
...
llvm-svn: 140172
2011-09-20 19:05:04 +00:00
Devang Patel
76e4b3cba8
If simple ownership works then friendship is not required.
...
llvm-svn: 140169
2011-09-20 18:48:56 +00:00
Bill Wendling
8a13959e3a
Use ArrayRef instead of 'const std::vector' to pass around the list of basic blocks to extract.
...
llvm-svn: 140168
2011-09-20 18:42:07 +00:00
Devang Patel
5332ddba93
Update GCOVLines to provide interfaces to write line table and calculate complete length.
...
llvm-svn: 140167
2011-09-20 18:35:00 +00:00
Douglas Gregor
0b34adbbaf
U is good enough
...
llvm-svn: 140166
2011-09-20 18:33:29 +00:00
Bill Wendling
2de4e5096d
Fix comments.
...
llvm-svn: 140164
2011-09-20 18:24:46 +00:00
Andrew Trick
bfac89c238
Restore hasPostISelHook tblgen flag.
...
No functionality change. The hook makes it explicit which patterns
require "special" handling. i.e. it self-documents tblgen
deficiencies. I plan to add verification in ExpandISelPseudos and
Thumb2SizeReduce to catch any missing hasPostISelHooks. Otherwise it's
too fragile.
llvm-svn: 140160
2011-09-20 18:22:31 +00:00
Douglas Gregor
669f1d1953
Eliminate sign-comparison warnings in APInt
...
llvm-svn: 140158
2011-09-20 18:11:52 +00:00
Akira Hatanaka
795050d1d1
Add mips64 & mips64el to Triple. Patch by Liu with modifications.
...
llvm-svn: 140157
2011-09-20 18:09:37 +00:00
Devang Patel
06d7cd5b4e
Update comment.
...
llvm-svn: 140156
2011-09-20 18:05:45 +00:00
Devang Patel
65d142a389
Use StringRef instead of std::string.
...
llvm-svn: 140154
2011-09-20 17:55:19 +00:00
Devang Patel
cb1e53c7ba
Eliminate unnecessary copy of FileName from GCOVLines.
...
GCOVLines is always accessed through a StringMap where the key is FileName.
llvm-svn: 140151
2011-09-20 17:43:14 +00:00
Devang Patel
525663a8b3
There is no need to write a local utility routine to find subprogram info if the utility routine is already available in DebugInfo.
...
llvm-svn: 140145
2011-09-20 15:57:19 +00:00
Craig Topper
df17f1cc99
Extend changes from r139986 to produce 256-bit AVX minps/minpd/maxps/maxpd.
...
llvm-svn: 140140
2011-09-20 07:38:59 +00:00
Andrew Trick
53aeb9f663
ARM isel bug fix for adds/subs operands.
...
Modified ARMISelLowering::AdjustInstrPostInstrSelection to handle the
full gamut of CPSR defs/uses including instructins whose "optional"
cc_out operand is not really optional. This allowed removal of the
hasPostISelHook to simplify the .td files and make the implementation
more robust.
Fixes rdar://10137436: sqlite3 miscompile
llvm-svn: 140134
2011-09-20 03:17:40 +00:00
Andrew Trick
43ccb48fb2
whitespace
...
llvm-svn: 140133
2011-09-20 03:06:13 +00:00
Jim Grosbach
e936bdc286
Thumb2 assembly parsing and encoding for UXTAB/UXTAB16/UXTH/UXTB/UXTB16/UXTH.
...
llvm-svn: 140125
2011-09-20 00:46:54 +00:00
Eric Christopher
9e21da67aa
Remove from cmake too.
...
llvm-svn: 140122
2011-09-20 00:38:04 +00:00
Eric Christopher
6cf9c3efe8
Remove more of llvmc and dependencies.
...
llvm-svn: 140121
2011-09-20 00:34:27 +00:00
Jim Grosbach
5ca3bddd26
Thumb2 assembly parsing and encoding for USAX.
...
llvm-svn: 140119
2011-09-20 00:30:45 +00:00
Jim Grosbach
882f1ec6d5
Remove incorrect comments. These are not disassmebly only patterns.
...
llvm-svn: 140116
2011-09-20 00:26:34 +00:00
Jim Grosbach
18a65f1fe6
Thumb2 assembly parsing and encoding for UQASX/UQSAX.
...
llvm-svn: 140111
2011-09-20 00:18:52 +00:00
Jim Grosbach
3de5351645
Thumb1 convenience aliases for disassembler round-trip testing. CPS instruction.
...
llvm-svn: 140108
2011-09-20 00:10:37 +00:00
Jim Grosbach
dd395f87df
Thumb CPS definition is not disassembler only.
...
llvm-svn: 140106
2011-09-20 00:00:06 +00:00