oota-llvm.git
15 years agoRemove tabs.
Bill Wendling [Fri, 22 Aug 2008 00:04:26 +0000 (00:04 +0000)]
Remove tabs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55154 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTestcase for PR2585.
Bill Wendling [Thu, 21 Aug 2008 23:04:49 +0000 (23:04 +0000)]
Testcase for PR2585.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55151 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTemporarily reverting r55137. This was causing the bootstrap to go into an
Bill Wendling [Thu, 21 Aug 2008 22:40:10 +0000 (22:40 +0000)]
Temporarily reverting r55137. This was causing the bootstrap to go into an
infinite loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55149 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix write() when the string being written is larger than the buffer. This broke...
Owen Anderson [Thu, 21 Aug 2008 22:39:33 +0000 (22:39 +0000)]
Fix write() when the string being written is larger than the buffer.  This broke various ObjC testcases
with very long symbol names.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55148 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf part of the mask is "undef", then ignore it as we don't care what goes into it.
Bill Wendling [Thu, 21 Aug 2008 22:36:36 +0000 (22:36 +0000)]
If part of the mask is "undef", then ignore it as we don't care what goes into it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55147 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix whitespace. No functionality change.
Bill Wendling [Thu, 21 Aug 2008 22:35:37 +0000 (22:35 +0000)]
Fix whitespace. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55146 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd -mattr=sse2 so this test doesn't fail on non-x86 hosts.
Dan Gohman [Thu, 21 Aug 2008 22:34:25 +0000 (22:34 +0000)]
Add -mattr=sse2 so this test doesn't fail on non-x86 hosts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55145 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake x86 and sse2 explicit for non-x86 hosts.
Dale Johannesen [Thu, 21 Aug 2008 21:26:06 +0000 (21:26 +0000)]
Make x86 and sse2 explicit for non-x86 hosts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55141 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAccept NOT of a constant vector of int.
Dale Johannesen [Thu, 21 Aug 2008 21:20:09 +0000 (21:20 +0000)]
Accept NOT of a constant vector of int.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55140 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a number of byval / memcpy / memset related codegen issues.
Evan Cheng [Thu, 21 Aug 2008 21:00:15 +0000 (21:00 +0000)]
Fix a number of byval / memcpy / memset related codegen issues.
1. x86-64 byval alignment should be max of 8 and alignment of type. Previously the code was not doing what the commit message was saying.
2. Do not use byte repeat move and store operations. These are slow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55139 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove non-trivial methods out of line to avoid code-size bloat.
Owen Anderson [Thu, 21 Aug 2008 20:58:52 +0000 (20:58 +0000)]
Move non-trivial methods out of line to avoid code-size bloat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55138 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix ComputeMaskedBits to handle phis correctly. We need to take the
David Greene [Thu, 21 Aug 2008 20:45:12 +0000 (20:45 +0000)]
Fix ComputeMaskedBits to handle phis correctly.  We need to take the
minimum of the known zeros.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55137 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTreat floating point ST1 the same as ST0 when lowering for a call result
Mon P Wang [Thu, 21 Aug 2008 19:54:16 +0000 (19:54 +0000)]
Treat floating point ST1 the same as ST0 when lowering for a call result

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55135 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove unneeded #include.
Owen Anderson [Thu, 21 Aug 2008 19:51:25 +0000 (19:51 +0000)]
Remove unneeded #include.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55134 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd libcalls for the new rounding opcodes.
Dan Gohman [Thu, 21 Aug 2008 18:38:14 +0000 (18:38 +0000)]
Add libcalls for the new rounding opcodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55133 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a typo that Dale noticed.
Dan Gohman [Thu, 21 Aug 2008 18:13:12 +0000 (18:13 +0000)]
Fix a typo that Dale noticed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55132 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd libm-oriented ISD opcodes for rounding operations.
Dan Gohman [Thu, 21 Aug 2008 17:55:02 +0000 (17:55 +0000)]
Add libm-oriented ISD opcodes for rounding operations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55130 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHave FastISel skip the multiply by 1 for getelementptr on i8*.
Dan Gohman [Thu, 21 Aug 2008 17:37:05 +0000 (17:37 +0000)]
Have FastISel skip the multiply by 1 for getelementptr on i8*.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55129 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAllow inline asm nodes with empty bodies inside JIT.
Anton Korobeynikov [Thu, 21 Aug 2008 17:33:01 +0000 (17:33 +0000)]
Allow inline asm nodes with empty bodies inside JIT.
This unbreaks explicit reg vars inside JIT, which are
implemented in such hacky way :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55128 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSwitch from an O(n) method to an O(1) method for changing non-constant
Chris Lattner [Thu, 21 Aug 2008 17:31:45 +0000 (17:31 +0000)]
Switch from an O(n) method to an O(1) method for changing non-constant
operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55127 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agogetelementptr doesn't work on x86-64 yet, because it
Dan Gohman [Thu, 21 Aug 2008 17:28:42 +0000 (17:28 +0000)]
getelementptr doesn't work on x86-64 yet, because it
has MOV64ri32 and no plain MOV64ri.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55126 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMVT::getMVT uses iPTR for pointer types, while we need the actual
Dan Gohman [Thu, 21 Aug 2008 17:25:26 +0000 (17:25 +0000)]
MVT::getMVT uses iPTR for pointer types, while we need the actual
intptr_t type in this case. FastISel can now select simple
getelementptr instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55125 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSimplify SelectRoot's interface, and factor out some common code
Dan Gohman [Thu, 21 Aug 2008 16:36:34 +0000 (16:36 +0000)]
Simplify SelectRoot's interface, and factor out some common code
from all targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55124 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoElements in DeadNodeSet are checked for use_empty() before they
Dan Gohman [Thu, 21 Aug 2008 16:24:54 +0000 (16:24 +0000)]
Elements in DeadNodeSet are checked for use_empty() before they
are actually deleted, so it's not necessary to remove re-used
nodes from the set.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55123 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSelectionDAGISel::SelectRootInit does not need to be virtual.
Dan Gohman [Thu, 21 Aug 2008 16:06:51 +0000 (16:06 +0000)]
SelectionDAGISel::SelectRootInit does not need to be virtual.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55122 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake HandleSDNode::getValue return an SDValue instead of
Dan Gohman [Thu, 21 Aug 2008 16:02:46 +0000 (16:02 +0000)]
Make HandleSDNode::getValue return an SDValue instead of
the full SDUse, which isn't needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55121 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't silently ignore errors when opening output streams.
Dan Gohman [Thu, 21 Aug 2008 15:33:45 +0000 (15:33 +0000)]
Don't silently ignore errors when opening output streams.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55120 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoClean up whitespace.
Bill Wendling [Thu, 21 Aug 2008 08:38:54 +0000 (08:38 +0000)]
Clean up whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55117 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove redundant include
Chris Lattner [Thu, 21 Aug 2008 06:41:07 +0000 (06:41 +0000)]
remove redundant include

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55116 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix the build with gcc 4.3 as the host, patch by Zhongxing Xu!
Chris Lattner [Thu, 21 Aug 2008 06:25:28 +0000 (06:25 +0000)]
Fix the build with gcc 4.3 as the host, patch by Zhongxing Xu!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55115 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement operator<< in terms of basic types rather than [u]int*_t, which is better...
Owen Anderson [Thu, 21 Aug 2008 06:20:47 +0000 (06:20 +0000)]
Implement operator<< in terms of basic types rather than [u]int*_t, which is better for portability.  There might be some way to factor this all with metaprogramming magic, but I'm not sure how offhand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55114 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRevert r54876 r54877 r54906 and r54907. Evan found that these caused a 20%
Nick Lewycky [Thu, 21 Aug 2008 05:56:10 +0000 (05:56 +0000)]
Revert r54876 r54877 r54906 and r54907. Evan found that these caused a 20%
slowdown in bzip2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55113 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agounbreak the CBE on treeadd an many others.
Chris Lattner [Thu, 21 Aug 2008 05:51:43 +0000 (05:51 +0000)]
unbreak the CBE on treeadd an many others.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55112 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix build on GCC 4.3.
Nick Lewycky [Thu, 21 Aug 2008 05:36:03 +0000 (05:36 +0000)]
Fix build on GCC 4.3.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55110 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove size_t operator; this unbreaks the build on Linux. Committing on
Eli Friedman [Thu, 21 Aug 2008 04:28:31 +0000 (04:28 +0000)]
Remove size_t operator; this unbreaks the build on Linux.  Committing on
the suggestion of resistor.

If this breaks some other platform, please go ahead and back this out.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55106 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorecommit bcreader, handling packed structs correctly. Apparently
Chris Lattner [Thu, 21 Aug 2008 02:34:16 +0000 (02:34 +0000)]
recommit bcreader, handling packed structs correctly.  Apparently
people want fast *and* correct.  Sheesh.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55102 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRevert 55090, regressions in:
Daniel Dunbar [Thu, 21 Aug 2008 01:54:58 +0000 (01:54 +0000)]
Revert 55090, regressions in:
 - Postgres
 - llvm-test/SingleSource/UnitTests/{2006-01-23-InitializedBitField,
   2004-11-28-GlobalBoolLayout, 2003-05-02-DependentPHI}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55100 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBasic fast-isel support for instructions with constant int operands.
Dan Gohman [Thu, 21 Aug 2008 01:41:07 +0000 (01:41 +0000)]
Basic fast-isel support for instructions with constant int operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55099 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoType of first GEP operand is always the same as the target pointer type.
Evan Cheng [Thu, 21 Aug 2008 01:19:11 +0000 (01:19 +0000)]
Type of first GEP operand is always the same as the target pointer type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55097 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove the code that limited FastISel to certain fixed signatures.
Dan Gohman [Thu, 21 Aug 2008 00:35:26 +0000 (00:35 +0000)]
Remove the code that limited FastISel to certain fixed signatures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55096 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImprove the doxygen comment for SelectInstructions::SelectInstructions.
Dan Gohman [Thu, 21 Aug 2008 00:19:43 +0000 (00:19 +0000)]
Improve the doxygen comment for SelectInstructions::SelectInstructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55094 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBegin making more use of the FastISelEmitter class.
Dan Gohman [Thu, 21 Aug 2008 00:19:05 +0000 (00:19 +0000)]
Begin making more use of the FastISelEmitter class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55093 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse raw_ostream throughout the AsmPrinter.
Owen Anderson [Thu, 21 Aug 2008 00:14:44 +0000 (00:14 +0000)]
Use raw_ostream throughout the AsmPrinter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55092 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix an N^2 issue handling constant resolution due to RAUW in large arrays
Chris Lattner [Thu, 21 Aug 2008 00:11:50 +0000 (00:11 +0000)]
Fix an N^2 issue handling constant resolution due to RAUW in large arrays
this speeds up the bcreader from 6.67s to 0.12s on a testcase Daniel
provided.  rdar://6158117

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55090 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix unused variable warnings.
Dan Gohman [Wed, 20 Aug 2008 23:53:10 +0000 (23:53 +0000)]
Fix unused variable warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55089 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSilence a compiler warning.
Evan Cheng [Wed, 20 Aug 2008 23:36:48 +0000 (23:36 +0000)]
Silence a compiler warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55087 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFirst cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst.
Evan Cheng [Wed, 20 Aug 2008 22:45:34 +0000 (22:45 +0000)]
First cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55085 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a new ConstantExpr::getWithOperands that takes any array of operands
Chris Lattner [Wed, 20 Aug 2008 22:27:40 +0000 (22:27 +0000)]
Add a new ConstantExpr::getWithOperands that takes any array of operands
instead of requiring an std::vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55084 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove an obsolete todo comment.
Dan Gohman [Wed, 20 Aug 2008 21:47:28 +0000 (21:47 +0000)]
Remove an obsolete todo comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55080 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFactor the code for determining the target-specific instruction
Dan Gohman [Wed, 20 Aug 2008 21:45:57 +0000 (21:45 +0000)]
Factor the code for determining the target-specific instruction
namespace out of the isel emitters and into common code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55079 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove the handling of ANY_EXTEND, SIGN_EXTEND_INREG, and TRUNCATE
Dan Gohman [Wed, 20 Aug 2008 21:27:32 +0000 (21:27 +0000)]
Move the handling of ANY_EXTEND, SIGN_EXTEND_INREG, and TRUNCATE
out of X86ISelDAGToDAG.cpp C++ code and into tablegen code.
Among other things, using tablegen for these things makes them
friendlier to FastISel.

Tablegen can handle the case of i8 subregs on x86-32, but currently
the C++ code for that case uses MVT::Flag in a tricky way, and it
happens to schedule better in some cases. So for now, leave the
C++ code in place to handle the i8 case on x86-32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55078 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSimplify the BuildMI calls even more.
Dan Gohman [Wed, 20 Aug 2008 21:10:53 +0000 (21:10 +0000)]
Simplify the BuildMI calls even more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55077 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSimplify FastISel's constructor argument list, make the FastISel
Dan Gohman [Wed, 20 Aug 2008 21:05:57 +0000 (21:05 +0000)]
Simplify FastISel's constructor argument list, make the FastISel
class hold a MachineRegisterInfo member, and make the
MachineBasicBlock be passed in to SelectInstructions rather
than the FastISel constructor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55076 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDump the instruction that foiled ISel even when -debug is not used.
Dan Gohman [Wed, 20 Aug 2008 20:47:32 +0000 (20:47 +0000)]
Dump the instruction that foiled ISel even when -debug is not used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55075 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't hoist instructions that define a physical register.
Bill Wendling [Wed, 20 Aug 2008 20:32:05 +0000 (20:32 +0000)]
Don't hoist instructions that define a physical register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55074 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake more use of the BuildMI API.
Dan Gohman [Wed, 20 Aug 2008 18:16:32 +0000 (18:16 +0000)]
Make more use of the BuildMI API.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55072 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMinor code reorganization.
Dan Gohman [Wed, 20 Aug 2008 18:10:48 +0000 (18:10 +0000)]
Minor code reorganization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55071 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMinor whitespace cleanup.
Dan Gohman [Wed, 20 Aug 2008 18:09:38 +0000 (18:09 +0000)]
Minor whitespace cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55070 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix 80 column violation.
Dan Gohman [Wed, 20 Aug 2008 18:09:02 +0000 (18:09 +0000)]
Fix 80 column violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55069 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoKill off SimpleBBISel, it's replaced by FastISel.
Evan Cheng [Wed, 20 Aug 2008 17:50:32 +0000 (17:50 +0000)]
Kill off SimpleBBISel, it's replaced by FastISel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55067 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove the fast-path (<=i64) cases of various APInt methods inline
Chris Lattner [Wed, 20 Aug 2008 17:02:31 +0000 (17:02 +0000)]
Move the fast-path (<=i64) cases of various APInt methods inline
and the slow-path cases out of line.  This speeds up instcombine
a bit in real world cases.  Patch contributed by m-s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55063 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDisable DAGCombine's alignment inference in "fast" codegen mode.
Dan Gohman [Wed, 20 Aug 2008 16:30:28 +0000 (16:30 +0000)]
Disable DAGCombine's alignment inference in "fast" codegen mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55059 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoChange the FoldingSetNodeID usage for objects which carry
Dan Gohman [Wed, 20 Aug 2008 15:58:01 +0000 (15:58 +0000)]
Change the FoldingSetNodeID usage for objects which carry
alignment and volatility information, such as loads and
stores, to reduce the number of integer values added to
the FoldingSetNodeID.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55058 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoClean up a dead return missed in r55055.
Dan Gohman [Wed, 20 Aug 2008 15:54:46 +0000 (15:54 +0000)]
Clean up a dead return missed in r55055.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55057 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTablegen generated code already tests the opcode value, so it's not
Dan Gohman [Wed, 20 Aug 2008 15:24:22 +0000 (15:24 +0000)]
Tablegen generated code already tests the opcode value, so it's not
necessary to use dyn_cast in these predicates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55055 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse BitVector instead of std::vector<unsigned char>.
Dan Gohman [Wed, 20 Aug 2008 14:58:41 +0000 (14:58 +0000)]
Use BitVector instead of std::vector<unsigned char>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55054 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIt's not necessary to check if a value is null before delete[].
Dan Gohman [Wed, 20 Aug 2008 14:55:37 +0000 (14:55 +0000)]
It's not necessary to check if a value is null before delete[].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55053 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse cast instead of dyn_cast.
Dan Gohman [Wed, 20 Aug 2008 14:50:24 +0000 (14:50 +0000)]
Use cast instead of dyn_cast.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55052 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAvoid an empty-if-body warning in release builds.
Dan Gohman [Wed, 20 Aug 2008 14:00:56 +0000 (14:00 +0000)]
Avoid an empty-if-body warning in release builds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55050 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix indentation.
Dan Gohman [Wed, 20 Aug 2008 13:50:12 +0000 (13:50 +0000)]
Fix indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55049 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix comment spacing.
Dan Gohman [Wed, 20 Aug 2008 13:46:21 +0000 (13:46 +0000)]
Fix comment spacing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55047 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFixed shuffle optimizations to handle non power of 2 vectors
Mon P Wang [Wed, 20 Aug 2008 02:23:25 +0000 (02:23 +0000)]
Fixed shuffle optimizations to handle non power of 2 vectors

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55035 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix the string for MVT::isVoid.
Dan Gohman [Wed, 20 Aug 2008 01:44:30 +0000 (01:44 +0000)]
Fix the string for MVT::isVoid.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55034 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix FastISel to recognize that the last block in the function does
Dan Gohman [Wed, 20 Aug 2008 01:17:01 +0000 (01:17 +0000)]
Fix FastISel to recognize that the last block in the function does
not have a fall-through successor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55033 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a leak in the FastISel code that Chris pointed out.
Dan Gohman [Wed, 20 Aug 2008 00:56:17 +0000 (00:56 +0000)]
Fix a leak in the FastISel code that Chris pointed out.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55031 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a -march line for this test, and run it on x86-64 too for fun.
Dan Gohman [Wed, 20 Aug 2008 00:56:07 +0000 (00:56 +0000)]
Add a -march line for this test, and run it on x86-64 too for fun.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55030 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd remaining 64-bit atomic patterns for x86-64.
Dale Johannesen [Wed, 20 Aug 2008 00:48:50 +0000 (00:48 +0000)]
Add remaining 64-bit atomic patterns for x86-64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55029 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for running SelectionDAG if FastISel fails. This is under
Dan Gohman [Wed, 20 Aug 2008 00:47:54 +0000 (00:47 +0000)]
Add support for running SelectionDAG if FastISel fails. This is under
a command-line option, so that the default behavior is an abort, which
is useful for exposing code that isn't supported yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55028 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix FastISel to recognize unhandled operands, such as constants
Dan Gohman [Wed, 20 Aug 2008 00:35:17 +0000 (00:35 +0000)]
Fix FastISel to recognize unhandled operands, such as constants
that aren't available as virtual registers (for now).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55026 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoll printer prints each zeroinit on the same line now, update regex
Chris Lattner [Wed, 20 Aug 2008 00:33:57 +0000 (00:33 +0000)]
ll printer prints each zeroinit on the same line now, update regex

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55025 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRevert r55018 and apply the correct "fix" for the 64-bit sub_and_fetch atomic.
Bill Wendling [Wed, 20 Aug 2008 00:28:16 +0000 (00:28 +0000)]
Revert r55018 and apply the correct "fix" for the 64-bit sub_and_fetch atomic.
Just expand it like the other X-bit sub_and_fetches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55023 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGet rid of a couple of dynamic_cast.
Evan Cheng [Wed, 20 Aug 2008 00:28:12 +0000 (00:28 +0000)]
Get rid of a couple of dynamic_cast.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55022 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd FastISel support for floating-point operations.
Dan Gohman [Wed, 20 Aug 2008 00:23:20 +0000 (00:23 +0000)]
Add FastISel support for floating-point operations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55021 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd FastISel support for several more binary operators.
Dan Gohman [Wed, 20 Aug 2008 00:11:48 +0000 (00:11 +0000)]
Add FastISel support for several more binary operators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55020 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for the __sync_sub_and_fetch atomics and friends for X86. The code
Bill Wendling [Tue, 19 Aug 2008 23:09:18 +0000 (23:09 +0000)]
Add support for the __sync_sub_and_fetch atomics and friends for X86. The code
was already present, but not hooked up to anything.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55018 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFast-isel is now *minimally* functional. Add a testcase to
Dan Gohman [Tue, 19 Aug 2008 22:37:59 +0000 (22:37 +0000)]
Fast-isel is now *minimally* functional. Add a testcase to
demonstrate the extent of its capabilities. Note that it
only attempts to operate on one of the blocks in this
testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55016 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd code to call FastISel, and a command-line option to enable it.
Dan Gohman [Tue, 19 Aug 2008 22:33:34 +0000 (22:33 +0000)]
Add code to call FastISel, and a command-line option to enable it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55015 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport unconditional fall-through branches in FastISel.
Dan Gohman [Tue, 19 Aug 2008 22:31:46 +0000 (22:31 +0000)]
Support unconditional fall-through branches in FastISel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55014 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAllow the fast-path spilling code to attempt folding, but still leaving out remat...
Owen Anderson [Tue, 19 Aug 2008 22:12:11 +0000 (22:12 +0000)]
Allow the fast-path spilling code to attempt folding, but still leaving  out remat and splitting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55012 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoInstantiate FastISel for X86.
Dan Gohman [Tue, 19 Aug 2008 21:45:35 +0000 (21:45 +0000)]
Instantiate FastISel for X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55011 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoThe X86 target will soon have an implementation of createFastISel.
Dan Gohman [Tue, 19 Aug 2008 21:32:53 +0000 (21:32 +0000)]
The X86 target will soon have an implementation of createFastISel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55010 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a TargetLowering hook for creating a FastISel object.
Dan Gohman [Tue, 19 Aug 2008 21:26:29 +0000 (21:26 +0000)]
Add a TargetLowering hook for creating a FastISel object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55009 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFor now, restrict FastISel to instructions that only involve one
Dan Gohman [Tue, 19 Aug 2008 20:58:14 +0000 (20:58 +0000)]
For now, restrict FastISel to instructions that only involve one
register class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55008 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFactor out the code to scan an instruction's operands into a
Dan Gohman [Tue, 19 Aug 2008 20:56:30 +0000 (20:56 +0000)]
Factor out the code to scan an instruction's operands into a
helper function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55007 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse the BuildMI overload that sets up a destination register
Dan Gohman [Tue, 19 Aug 2008 20:46:54 +0000 (20:46 +0000)]
Use the BuildMI overload that sets up a destination register
instead of the one that doesn't and then adding it manually.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55006 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle the case where target-specific fastisel code doesn't have
Dan Gohman [Tue, 19 Aug 2008 20:43:22 +0000 (20:43 +0000)]
Handle the case where target-specific fastisel code doesn't have
a desired opcode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55005 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd more comments.
Dan Gohman [Tue, 19 Aug 2008 20:36:33 +0000 (20:36 +0000)]
Add more comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55004 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix indentation in FastISel tablegen-emitted code.
Dan Gohman [Tue, 19 Aug 2008 20:31:38 +0000 (20:31 +0000)]
Fix indentation in FastISel tablegen-emitted code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55003 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd more checking to filter out more kinds of things that
Dan Gohman [Tue, 19 Aug 2008 20:30:54 +0000 (20:30 +0000)]
Add more checking to filter out more kinds of things that
FastISel doesn't support yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55002 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove reference to really really old tree
Chris Lattner [Tue, 19 Aug 2008 20:17:48 +0000 (20:17 +0000)]
remove reference to really really old tree

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55001 91177308-0d34-0410-b5e6-96231b3b80d8