Anton Korobeynikov
59e2b8e894
Add NEON 'laned' operations. This fixes another bunch of gcc testsuite fails and
...
makes the code faster.
llvm-svn: 81220
2009-09-08 15:22:32 +00:00
Chris Lattner
6760e54c92
fix a couple typos pointed out by edwin and duncan
...
llvm-svn: 81219
2009-09-08 15:13:16 +00:00
Dan Gohman
87be9e7c78
Unbreak these tests. Chris, please verify that these changes are intended.
...
llvm-svn: 81217
2009-09-08 14:14:24 +00:00
Richard Pennington
bd1fc36002
Add source debug information to the Sparc code generator.
...
llvm-svn: 81215
2009-09-08 12:47:30 +00:00
Nicolas Geoffray
51ae4a23da
When emitting a label for a PostCall safe point, the machine
...
instruction to insert before can be end(). getDebugLoc on
end() returns an invalid value, therefore use the debug
loc of the call instruction, and give it to InsertLabel.
llvm-svn: 81207
2009-09-08 07:39:27 +00:00
Nicolas Geoffray
8ab546ddca
Also emit a label for TargetInstrInfo::GC_LABEL.
...
llvm-svn: 81206
2009-09-08 07:36:18 +00:00
Anton Korobeynikov
758f8c690d
Unbreak
...
llvm-svn: 81205
2009-09-08 07:30:03 +00:00
Evan Cheng
a7afdda65d
When remat'ing and destination virtual register has a sub-register index. Make sure the sub-register class matches the register class of the remat'ed instruction definition register class.
...
llvm-svn: 81204
2009-09-08 06:39:07 +00:00
Chris Lattner
7975b8fc32
Print "X-42" instead of "X+-42".
...
llvm-svn: 81203
2009-09-08 06:37:35 +00:00
Chris Lattner
3cfc551f6e
make formatting of expressions more closely match the existing asmprinter.
...
llvm-svn: 81202
2009-09-08 06:34:07 +00:00
Chris Lattner
a0020be758
tidy whitespace.
...
llvm-svn: 81201
2009-09-08 06:27:48 +00:00
Chris Lattner
a8cb3dffe9
disable some irrelevant eh emission
...
llvm-svn: 81200
2009-09-08 06:26:40 +00:00
Chris Lattner
adb4545d14
add support for some missing modifiers on jumptable/constant pool entries.
...
llvm-svn: 81199
2009-09-08 06:25:12 +00:00
Chris Lattner
31d1810b16
add a bunch more evil lowering code to work around various :subreg32 modifiers
...
in the .td files. This gets us down to 18 failures in codegen/x86 with the
new asmprinter.
llvm-svn: 81198
2009-09-08 06:19:15 +00:00
Daniel Dunbar
d0521071f5
lit needs bash for tcl-as-sh execution, we use set -o pipefail.
...
llvm-svn: 81197
2009-09-08 06:08:07 +00:00
Chris Lattner
520a7f9250
ADd support for "lowering" the X86::MOVZX16rr8/X86::MOVZX16rm8
...
subreg32 modifiers.
llvm-svn: 81196
2009-09-08 06:03:07 +00:00
Chris Lattner
8280e58545
add a hack to lower MOV16r0 to MOV32r0 in MCInstLower, eliminating
...
the problem with subreg32 modifiers. This gets all of Olden working
with the new asmprinter.
llvm-svn: 81195
2009-09-08 05:49:25 +00:00
Daniel Dunbar
d89e08b3c0
Fix typo that worked on python 2.6.
...
Also, fix unit tests.
llvm-svn: 81194
2009-09-08 05:46:28 +00:00
Nick Lewycky
12c77d73a9
Hoist out the test+insert to CheckedTypes. This doesn't seem to affect
...
performance.
llvm-svn: 81193
2009-09-08 05:46:15 +00:00
Daniel Dunbar
9b712b3c8d
Fix a refactoro.
...
llvm-svn: 81192
2009-09-08 05:37:51 +00:00
Daniel Dunbar
3eeddd22dd
Add 'lit' support for llvm tests.
...
- This adds 'make check-lit' from the top-level Makefile.
llvm-svn: 81191
2009-09-08 05:31:44 +00:00
Daniel Dunbar
a213a427aa
Add 'lit' testing tool.
...
- make install && man $(llvm-config --prefix)/share/man/man1/lit.1 for more
information.
llvm-svn: 81190
2009-09-08 05:31:18 +00:00
Chris Lattner
ba7cdde020
llvm::cerr is gone.
...
llvm-svn: 81189
2009-09-08 05:15:50 +00:00
Chris Lattner
633ad4ee17
update this to use raw_ostream
...
llvm-svn: 81188
2009-09-08 05:14:44 +00:00
Chris Lattner
b2fcd070e2
fix PR4767, a crash because fp stackifier visited blocks in
...
depth first order, so it wouldn't process unreachable blocks.
When compiling at -O0, late dead block elimination isn't done
and the bad instructions got to isel.
llvm-svn: 81187
2009-09-08 04:55:44 +00:00
Chris Lattner
d1b21c6092
remove a turd
...
llvm-svn: 81186
2009-09-08 03:47:41 +00:00
Chris Lattner
d3210e1a20
instcombine transforms vector loads that are only used by
...
extractelement operations into a bitcast of the pointer,
then a gep, then a scalar load. Disable this when the vector
only has one element, because it leads to infinite loops in
instcombine (PR4908).
This transformation seems like a really bad idea to me, as it
will likely disable CSE of vector load/stores etc and can be
better done in the code generator when profitable. This
goes all the way back to the first days of packed types,
r25299 specifically.
I'll let those people who care about the performance of vector
code decide what to do with this.
llvm-svn: 81185
2009-09-08 03:44:51 +00:00
Chris Lattner
de6a44b790
fix pasto
...
llvm-svn: 81184
2009-09-08 03:39:55 +00:00
Chris Lattner
5c2126d67e
add getVectorOperand/getIndexOperand accessors to ExtractElementInst.
...
Fix some const correctness problems in SelectInst.
llvm-svn: 81183
2009-09-08 03:32:53 +00:00
Nick Lewycky
984161af16
Simplify from my last change. Assert1 is a macro that makes its caller return,
...
so "Assert1(isa<>); cast<>" is a valid idiom.
Actually check the PHI node's odd-numbered operands for BasicBlock-ness, like
the comment said.
llvm-svn: 81182
2009-09-08 02:02:39 +00:00
Anders Carlsson
6816affaa4
Handle variadic constructors better. Share code between BuildCXXConstructExpr and BuildCXXTemporaryObjectExpr.
...
llvm-svn: 81181
2009-09-08 01:48:42 +00:00
Dan Gohman
f4a0f0f033
Fix an abort on a store of an empty struct member. getValue returns
...
null in the case of an empty struct, so don't try to call getNumValues
on it.
llvm-svn: 81180
2009-09-08 01:44:02 +00:00
Nick Lewycky
b2b0467e18
Verify types. Invalid types can be constructed when assertions are off.
...
Make the verifier more robust by avoiding unprotected cast<> calls. Notably,
Assert1(isa<>); cast<> is not safe as Assert1 does not terminate the program.
llvm-svn: 81179
2009-09-08 01:23:52 +00:00
Anders Carlsson
6d5de59d09
Clean up the CXXConstructExpr constructor, add Arg getters.
...
llvm-svn: 81178
2009-09-08 01:23:37 +00:00
Chris Lattner
4ad0b4c544
fix PR4915, a crash in -debug mode.
...
llvm-svn: 81177
2009-09-08 01:22:54 +00:00
Chris Lattner
870158eebf
reject returning a block expr even when it has parens and casts in the way.
...
llvm-svn: 81176
2009-09-08 00:36:37 +00:00
Chris Lattner
f2ab40a46f
Fix PR4882, by making MemCpyOpt not dereference removed stores to get the
...
context for the newly created operations.
Patch by Jakub Staszak!
llvm-svn: 81175
2009-09-08 00:27:14 +00:00
Chris Lattner
0cdbc7a2ca
fix ComputeMaskedBits handling of zext/sext/trunc to work with vectors.
...
This fixes PR4905
llvm-svn: 81174
2009-09-08 00:13:52 +00:00
Chris Lattner
4bc2825d0b
add some comments to describe the invariants.
...
llvm-svn: 81173
2009-09-08 00:06:16 +00:00
Dan Gohman
1b84908f92
Reappy r80998, now that the GlobalOpt bug that it exposed on MiniSAT is fixed.
...
llvm-svn: 81172
2009-09-07 23:54:19 +00:00
Dan Gohman
2512a42548
Fix a thinko: When lowering fneg with xor, bitcast the operands
...
from floating-point to integer first, and bitcast the result
back to floating-point. Previously, this test was passing by
falling back to SelectionDAG lowering. The resulting code isn't
as nice, but it's correct and CodeGen now stays on the fast path.
llvm-svn: 81171
2009-09-07 23:47:14 +00:00
Chris Lattner
a34a718c4b
add some more notes.
...
llvm-svn: 81170
2009-09-07 23:33:52 +00:00
Daniel Dunbar
49f0e80fdd
Remove trailing whitespace.
...
llvm-svn: 81169
2009-09-07 23:07:56 +00:00
Dan Gohman
d131e18dd0
Add a testcase for the GlobalOpt inbounds fix.
...
llvm-svn: 81168
2009-09-07 23:04:59 +00:00
Chris Lattner
ec72b9bbcf
describe undef semantics in some more detail.
...
llvm-svn: 81167
2009-09-07 22:52:39 +00:00
Dan Gohman
02e363ed52
Add inbounds to these getelementptrs, now that GlobalOpt requires this,
...
to preserve the meaning of these tests.
llvm-svn: 81166
2009-09-07 22:45:41 +00:00
Dan Gohman
161429fe7e
Don't commit stores with addresses that have indices that are not
...
compile-time constant integers or that are out of bounds for their
corresponding static array types. These can cause aliasing that
GlobalOpt assumes won't happen.
llvm-svn: 81165
2009-09-07 22:44:55 +00:00
Dan Gohman
82e747580f
Don't commit addresses of aggregate values. This avoids problems with
...
an aggregate store overlapping a different aggregate store, despite
the stores having distinct addresses.
llvm-svn: 81164
2009-09-07 22:42:05 +00:00
Dan Gohman
beee35a277
Fix GlobalOpt to avoid committing a store if the address getelementptr
...
is missing the inbounds flag. This is slightly conservative, but it
avoids problems with two constants pointing to the same address but
getting distinct entries in the Memory DenseMap.
llvm-svn: 81163
2009-09-07 22:40:13 +00:00
Dan Gohman
19244eaa4a
Preserve the InBounds flag when evaluating a getelementptr instruction
...
into a getelementptr ConstantExpr.
llvm-svn: 81162
2009-09-07 22:34:43 +00:00