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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Owen Anderson [Tue, 19 Aug 2008 20:09:52 +0000 (20:09 +0000)]
The fast-path still needs to set kill markers and spill/restore points as appropriate.
With this patch, all of MultiSource/Applications and all of SPEC2000/2006 pass with
the SimpleSpiller and this fast-path enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55000
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 19 Aug 2008 18:47:28 +0000 (18:47 +0000)]
Add support for 8 and 16 bit forms of __sync
builtins on X86.
Change "lock" instructions to be on a separate line.
This is needed to work around a bug in the Darwin
assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54999
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 18:07:49 +0000 (18:07 +0000)]
80 columns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54998
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 18:06:12 +0000 (18:06 +0000)]
Add a few doxygen comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54997
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Aug 2008 17:53:16 +0000 (17:53 +0000)]
Remove an unneeded #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54996
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 19 Aug 2008 17:09:26 +0000 (17:09 +0000)]
Delete a dead field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54995
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 19 Aug 2008 17:06:35 +0000 (17:06 +0000)]
[PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54994
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolas Geoffray [Tue, 19 Aug 2008 14:48:14 +0000 (14:48 +0000)]
Update the JIT exception writer to better mimic the codegen exception writer.
Also skip indirect encoding for platforms that ask for one: we direclty
write an address, not a pointer to the address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54987
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 06:22:16 +0000 (06:22 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54985
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 05:26:17 +0000 (05:26 +0000)]
more cleanups, random methods shouldn't return ostreams.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54984
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 05:16:28 +0000 (05:16 +0000)]
more cleanup, eliminate getLLVMName when printing out
type names at the top of the file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54983
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 19 Aug 2008 05:06:27 +0000 (05:06 +0000)]
random cleanups, factor some printing code for linkage and visibility
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54982
91177308-0d34-0410-b5e6-
96231b3b80d8