Evan Cheng [Tue, 30 May 2006 18:04:34 +0000 (18:04 +0000)]
When a priority_queue is empty, the behavior of top() operator is
non-deterministic. Returns NULL when it's empty!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28560
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 30 May 2006 17:33:19 +0000 (17:33 +0000)]
Expand ret into "CopyToReg;BRIND"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28559
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 30 May 2006 16:38:06 +0000 (16:38 +0000)]
Enable -fno-use-cxa-atexit on darwin/ppc also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28558
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 30 May 2006 16:34:59 +0000 (16:34 +0000)]
Undo a patch that breaks llvm-as because the warning message is written to
stdout when the output of llvm-as is also written to stdout. We'll have to
fix tcl some other way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28557
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 30 May 2006 16:05:59 +0000 (16:05 +0000)]
Write the WARNING message to cout instead of cerr. Writing to cerr causes
Tcl to claim that the program had an error and thus produces errors in
the dejagnu testing when its really just a warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28556
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Prus [Tue, 30 May 2006 15:49:30 +0000 (15:49 +0000)]
Make doc comment visible in doxygen output. Clarify Type construction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28555
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 30 May 2006 10:21:41 +0000 (10:21 +0000)]
Fix many small bugs in llvm2cpp. This patch gets llvm2cpp working with
everything except PHI nodes and one odd recurse/opaque type situation.
PHI nodes forward reference INSTRUCTIONS (aaaaaaaahhhhhhh!) :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28554
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 30 May 2006 08:26:13 +0000 (08:26 +0000)]
Properly document the second form of ConstArray::get()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28553
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 30 May 2006 08:23:18 +0000 (08:23 +0000)]
Adjust the interface to ConstantArray::get. The previous
implementation always added a null byte to the end of the string. It turns
out that this is not always wanted. By adding a length parameter we preserve
this behavior when length==0 (default value) but also allow other lengths
(not null terminated) to be created.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28552
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 30 May 2006 07:37:37 +0000 (07:37 +0000)]
Add a note about integer multiplication by constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28551
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 30 May 2006 06:59:36 +0000 (06:59 +0000)]
A addressing mode folding enhancement:
Fold c2 in (x << c1) | c2 where (c2 < c1)
e.g.
int test(int x) {
return (x << 3) + 7;
}
This can be codegen'd as:
leal 7(,%eax,8), %eax
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28550
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 30 May 2006 06:53:55 +0000 (06:53 +0000)]
Add a lea instruction selection test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28549
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 30 May 2006 06:23:50 +0000 (06:23 +0000)]
Some new entries about truncate / anyext
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28548
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 30 May 2006 03:43:49 +0000 (03:43 +0000)]
First complete version of llvm2cpp that doesn't crash on any of the Feature
tests. The output in a few cases still doesn't compile, however.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28547
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 29 May 2006 23:39:48 +0000 (23:39 +0000)]
move calltarget to dsa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28546
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 29 May 2006 22:58:38 +0000 (22:58 +0000)]
Since there was interest on the mailing list, this is a utility pass that
uses DSA to make find targets of calls. It provides a very convinient
interface to DSA results to do things with indirect calls, such as
write a devirtualizer (which I have and may commit one of these days).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28545
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 May 2006 18:52:52 +0000 (18:52 +0000)]
Silly cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28544
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 May 2006 18:52:05 +0000 (18:52 +0000)]
silly cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28543
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 18:09:38 +0000 (18:09 +0000)]
Fix a bug with diffing the wrong files. Make output more readable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28542
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 18:08:06 +0000 (18:08 +0000)]
Next batch of implementation:
1. Get rid of old AsmWriter cruft that's not needed.
2. Implement several instructions. Enough to get by globalvars.ll and
alignment.ll in the Feature test suite.
3. Handle constants properly (don't repeat definitions).
4. Make the output compatible with llvm-dis for diff purposes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28541
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 18:06:28 +0000 (18:06 +0000)]
Fix file header comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28540
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 18:05:59 +0000 (18:05 +0000)]
Remove temporary testing rules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28539
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Prus [Mon, 29 May 2006 12:54:52 +0000 (12:54 +0000)]
Reset DEBUG_SYMBOL_TABLE back to 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28538
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Prus [Mon, 29 May 2006 12:45:15 +0000 (12:45 +0000)]
Fix compile error when DEBUG_SYMBOL_TABLE is defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28537
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 02:58:15 +0000 (02:58 +0000)]
Fix two bugs in the CppWriter.cpp:
1. Return the module from the MakeModule function so it can be verified.
2. Make sure types get generated with their names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28536
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 02:35:29 +0000 (02:35 +0000)]
Fix the file's comment block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28535
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 02:34:34 +0000 (02:34 +0000)]
Fix grammar in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28534
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 02:32:43 +0000 (02:32 +0000)]
Replace an old C-style cast with a C++ cast (squelch warning)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28533
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 02:31:47 +0000 (02:31 +0000)]
Correct some grammar and describe current reality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28532
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 May 2006 01:28:16 +0000 (01:28 +0000)]
Require both tests to pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28531
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 May 2006 01:07:04 +0000 (01:07 +0000)]
Update the testcase to check the full extent of LCSSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28530
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 29 May 2006 01:00:00 +0000 (01:00 +0000)]
Add Use replacement. Assuming there is nothing horribly wrong with this, LCSSA
is now theoretically feature-complete. It has not, however, been thoroughly
test, and is still considered experimental.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28529
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 May 2006 00:57:22 +0000 (00:57 +0000)]
Initial Commit of llvm2cpp
This is a safekeeping commit. The program is not finished. It currently
handles modules, types, global variables and function declarations. Blocks
and instructions remain to be done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28528
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 28 May 2006 19:33:28 +0000 (19:33 +0000)]
Major think-o. Iterate over all live out-of-loop values, and perform the
other calculations on each individually, rather than trying to delay it and do
them all at the end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28527
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 28 May 2006 07:22:42 +0000 (07:22 +0000)]
Fix a problem where dejagnu won't accept the value of global tcl variable
"libdir" for some reason. Changing to llvmlibsdir instead fixes it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28526
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 28 May 2006 04:21:40 +0000 (04:21 +0000)]
Provide an infrastructure for testing the llvm2cpp program (yet to be
committed). This infrastructure is only activated when RUNLLVM2CPP=1 is
specified on the make command line. Currently it is only supported in the
Feature test suite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28525
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 27 May 2006 18:47:11 +0000 (18:47 +0000)]
Make LCSSA insert proper Phi nodes throughout the rest of the CFG by computing
the iterated Dominance Frontier of the loop-closure Phi's. This is the
second phase of the LCSSA pass. The third phase (coming soon) will be to
update all uses of loop variables to use the loop-closure Phi's instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28524
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 17:28:13 +0000 (17:28 +0000)]
Fix some regression from the inliner patch I committed last night. This fixes
ldecod, lencod, and SPASS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28523
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 06:57:55 +0000 (06:57 +0000)]
Fix pastos in comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28522
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 01:28:04 +0000 (01:28 +0000)]
Switch the inliner over to using CloneAndPruneFunctionInto. This effectively
makes it so that it constant folds instructions on the fly. This is good
for several reasons:
0. Many instructions are constant foldable after inlining, particularly if
inlining a call with constant arguments.
1. Without this, the inliner has to allocate memory for all of the instructions
that can be constant folded, then a subsequent pass has to delete them. This
gets the job done without this extra work.
2. This makes the inliner *pass* a bit more aggressive: in particular, it
partially solves a phase order issue where the inliner would inline lots
of code that folds away to nothing, but think that the resultant function
is big because of this code that will be gone. Now the code never exists.
This is the first part of a 2-step process. The second part will be smart
enough to see when this implicit constant folding propagates a constant into
a branch or switch instruction, making CFG edges dead.
This implements Transforms/Inline/inline_constprop.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28521
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 01:23:30 +0000 (01:23 +0000)]
Ignore generated files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28520
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 01:22:24 +0000 (01:22 +0000)]
Implement a new method, CloneAndPruneFunctionInto, as documented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28519
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 01:21:50 +0000 (01:21 +0000)]
Implement a new method: CloneAndPruneFunctionInto, as documented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28518
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 01:18:04 +0000 (01:18 +0000)]
Refactor some code to expose an interface to constant fold and instruction given it's opcode, typeand operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28517
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 01:17:40 +0000 (01:17 +0000)]
Add an interface to constant fold and instruction given it's opcode, type
and operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28516
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 01:16:22 +0000 (01:16 +0000)]
New testcase: check that the inliner constant folds instructions on the
fly if it can.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28515
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 00:43:02 +0000 (00:43 +0000)]
Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!):
SimplifySelectOps would eliminate a Select, delete it, then return true.
The clients would see that it did something and return null.
The top level would see a null return, and decide that nothing happened,
proceeding to process the node in other ways: boom.
The fix is simple: clients of SimplifySelectOps should return the select
node itself.
In order to catch really obnoxious boogs like this in the future, add an
assert that nodes are not deleted. We do this by checking for a sentry node
type that the SDNode dtor sets when a node is destroyed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28514
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 May 2006 00:40:15 +0000 (00:40 +0000)]
Add a new sentry node type, allowing assertions to catch trivial
use-after-deleted errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28513
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 27 May 2006 00:31:37 +0000 (00:31 +0000)]
A few small clean-ups, and the addition of an LCSSA statistic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28512
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 23:13:20 +0000 (23:13 +0000)]
Make CALL node consistent with RET node. Signness of value has type MVT::i32
instead of MVT::i1. Either is fine except MVT::i32 is probably a legal type
for most (if not all) platforms while MVT::i1 is not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28511
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 23:10:12 +0000 (23:10 +0000)]
Change RET node to include signness information of the return values. i.e.
RET chain, value1, sign1, value2, sign2, ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28510
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 23:09:09 +0000 (23:09 +0000)]
Change RET node to include signness information of the return values. e.g.
RET chain, value1, sign1, value2, sign2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28509
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 May 2006 21:59:20 +0000 (21:59 +0000)]
Trivial testcase that LCSSA can already handle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28508
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 May 2006 21:19:17 +0000 (21:19 +0000)]
Fix a copy-and-paste-o that would break some compilers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28507
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 May 2006 21:11:53 +0000 (21:11 +0000)]
Clean up and refactor LCSSA a bunch. It should also run faster now, though
there's still a lot of work to be done on it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28506
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 20:37:47 +0000 (20:37 +0000)]
Vector argument must be passed in memory location aligned on 16-byte boundary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28505
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 19:22:06 +0000 (19:22 +0000)]
Mac OS X ABI document lied. The first four XMM registers are used to pass
vector arguments, not three.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28504
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 26 May 2006 19:19:20 +0000 (19:19 +0000)]
Implement Transforms/InstCombine/store.ll:test2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28503
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 26 May 2006 19:18:40 +0000 (19:18 +0000)]
New testcase for trivial DSE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28502
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 26 May 2006 18:42:34 +0000 (18:42 +0000)]
Fix a bug in the bc reader/writer: we were not correctly encoding varargs
nonccc calls (we were dropping the CC and tail flag). This broke several
FORTRAN programs.
Testcase here: Regression/Assembler/2006-05-26-VarargsCallEncode.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28501
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 26 May 2006 18:41:26 +0000 (18:41 +0000)]
New testcase, check that the bc file correctly encodes varargs nonccc calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28500
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 18:39:59 +0000 (18:39 +0000)]
Minor update to make the code more clear
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28499
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 18:37:16 +0000 (18:37 +0000)]
Update more comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28498
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 18:25:43 +0000 (18:25 +0000)]
Fix some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28497
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 18:22:49 +0000 (18:22 +0000)]
No need to handle illegal types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28496
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 26 May 2006 13:58:26 +0000 (13:58 +0000)]
Skeletal LCSSA pass. This is currently non-functional. Expect functionality
and documentation updates soo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28495
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 26 May 2006 10:56:17 +0000 (10:56 +0000)]
On ARM, alignment is in bits
Add lr as a hard coded operand of bx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28494
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 08:04:31 +0000 (08:04 +0000)]
Remove a couple of bogus casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28493
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 08:00:14 +0000 (08:00 +0000)]
Remove a bogus cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28492
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 26 May 2006 06:22:34 +0000 (06:22 +0000)]
Minor bug caught by Ashwin Chandra
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28491
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 26 May 2006 00:29:06 +0000 (00:29 +0000)]
Transform things like (splat(splat)) -> splat
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28490
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 23:48:38 +0000 (23:48 +0000)]
Introduce a helper function that simplifies interpretation of shuffle masks.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28489
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 23:31:23 +0000 (23:31 +0000)]
Consistency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28488
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 23:24:33 +0000 (23:24 +0000)]
Turn (cast (shuffle (cast)) -> shuffle (cast) if it reduces the # casts in
the program. This exposes more opportunities for the instcombiner, and implements
vec_shuffle.ll:test6
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28487
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 23:23:22 +0000 (23:23 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28486
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 22:53:38 +0000 (22:53 +0000)]
extract element from a shuffle vector can be trivially turned into an
extractelement from the SV's source. This implement vec_shuffle.ll:test[45]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28485
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 22:52:49 +0000 (22:52 +0000)]
new testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28484
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 22:38:31 +0000 (22:38 +0000)]
Some clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28483
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 22:26:02 +0000 (22:26 +0000)]
Add support for the missing FP condition codes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28482
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 22:25:52 +0000 (22:25 +0000)]
Remove some dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28481
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 21:59:08 +0000 (21:59 +0000)]
X86 / Cygwin asm / alignment fixes.
Patch contributed by Anton Korobeynikov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28480
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 21:25:54 +0000 (21:25 +0000)]
The patch corresponding to this test had to be reverted as unsafe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28479
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 21:25:12 +0000 (21:25 +0000)]
Revert a patch that is unsafe, due to out of range array accesses in inner
array scopes possibly accessing valid memory in outer subscripts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28478
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 20:21:19 +0000 (20:21 +0000)]
New test case. x86 isel was creating a cycle in the DAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28477
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 20:16:55 +0000 (20:16 +0000)]
Can't trust NodeDepth when checking for possibility of load folding creating
a cycle. This increase the search space and will increase compile time (in
practice it appears to be small, e.g. 176.gcc goes from 62 sec to 65 sec)
that will be addressed later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28476
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 18:56:34 +0000 (18:56 +0000)]
Build breakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28475
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 18:06:16 +0000 (18:06 +0000)]
Fix build failure of povray
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28473
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 16:54:16 +0000 (16:54 +0000)]
Fix Benchmarks/MallocBench/cfrac
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28471
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 25 May 2006 12:57:06 +0000 (12:57 +0000)]
implement initial version of ARMAsmPrinter::printOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28470
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 25 May 2006 11:00:18 +0000 (11:00 +0000)]
port the ARM backend to use ISD::CALL instead of LowerCallTo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28469
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 25 May 2006 10:49:19 +0000 (10:49 +0000)]
create test/Regression/CodeGen/ARM/ and add a minimal test to it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28468
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 08:39:25 +0000 (08:39 +0000)]
-sched-commute-nodes is now on by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28467
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 08:37:31 +0000 (08:37 +0000)]
Turn on -sched-commute-nodes by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28465
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 May 2006 05:59:50 +0000 (05:59 +0000)]
Fix breakage on platforms where string/cassert don't pull in int64_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28464
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 00:59:30 +0000 (00:59 +0000)]
Switch X86 over to a call-selection model where the lowering code creates
the copyto/fromregs instead of making the X86ISD::CALL selection code create
them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28463
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 00:57:32 +0000 (00:57 +0000)]
CALL node change (arg / sign pairs instead of just arguments).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28462
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 00:55:32 +0000 (00:55 +0000)]
CALL node change: now including signness of every argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28461
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 00:54:33 +0000 (00:54 +0000)]
CALL node change: now containing signness of each argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28460
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 00:24:28 +0000 (00:24 +0000)]
Assert if InflightSet is not cleared after instruction selecting a BB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28459
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 25 May 2006 00:21:44 +0000 (00:21 +0000)]
Fixed a really ugly bug. The TableGen'd isel is not freeing the "inflight set"
correctly. That is causing non-deterministic behavior (and possibly preventing
some load folding from happening).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28458
91177308-0d34-0410-b5e6-
96231b3b80d8