Gordon Henriksen
4b2b9402c5
Switching TargetMachineRegistry to use the new generic Registry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43094 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-17 21:28:48 +00:00
Hartmut Kaiser
efd4a5144b
Updated VC++ build system.
...
Silenced some VC warnings.
I'm getting linker errors, though: unresolved externals:
llvm::Split<class llvm::BasicBlock *,struct llvm::GraphTraits<class llvm::BasicBlock *> >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)
and
llvm::Split<struct llvm::Inverse<class llvm::BasicBlock *>,struct llvm::GraphTraits<struct llvm::Inverse<class llvm::BasicBlock *> > >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)
Where are these defined?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43073 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-17 14:56:40 +00:00
Chris Lattner
01d029b82c
One mundane change: Change ReplaceAllUsesOfValueWith to *optionally*
...
take a deleted nodes vector, instead of requiring it.
One more significant change: Implement the start of a legalizer that
just works on types. This legalizer is designed to run before the
operation legalizer and ensure just that the input dag is transformed
into an output dag whose operand and result types are all legal, even
if the operations on those types are not.
This design/impl has the following advantages:
1. When finished, this will *significantly* reduce the amount of code in
LegalizeDAG.cpp. It will remove all the code related to promotion and
expansion as well as splitting and scalarizing vectors.
2. The new code is very simple, idiomatic, and modular: unlike
LegalizeDAG.cpp, it has no 3000 line long functions. :)
3. The implementation is completely iterative instead of recursive, good
for hacking on large dags without blowing out your stack.
4. The implementation updates nodes in place when possible instead of
deallocating and reallocating the entire graph that points to some
mutated node.
5. The code nicely separates out handling of operations with invalid
results from operations with invalid operands, making some cases
simpler and easier to understand.
6. The new -debug-only=legalize-types option is very very handy :),
allowing you to easily understand what legalize types is doing.
This is not yet done. Until the ifdef added to SelectionDAGISel.cpp is
enabled, this does nothing. However, this code is sufficient to legalize
all of the code in 186.crafty, olden and freebench on an x86 machine. The
biggest issues are:
1. Vectors aren't implemented at all yet
2. SoftFP is a mess, I need to talk to Evan about it.
3. No lowering to libcalls is implemented yet.
4. Various operations are missing etc.
5. There are FIXME's for stuff I hax0r'd out, like softfp.
Hey, at least it is a step in the right direction :). If you'd like to help,
just enable the #ifdef in SelectionDAGISel.cpp and compile code with it. If
this explodes it will tell you what needs to be implemented. Help is
certainly appreciated.
Once this goes in, we can do three things:
1. Add a new pass of dag combine between the "type legalizer" and "operation
legalizer" passes. This will let us catch some long-standing isel issues
that we miss because operation legalization often obfuscates the dag with
target-specific nodes.
2. We can rip out all of the type legalization code from LegalizeDAG.cpp,
making it much smaller and simpler. When that happens we can then
reimplement the core functionality left in it in a much more efficient and
non-recursive way.
3. Once the whole legalizer is non-recursive, we can implement whole-function
selectiondags maybe...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42981 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-15 06:10:22 +00:00
Evan Cheng
3393f892c7
Fix typos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42896 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12 08:39:02 +00:00
Tanya Lattner
9949c2a7ef
If the user did not check out LLVM and request it to be built, it should be a build error. This relies on the user having a successful build of LLVM, but the tests will fail if they dont.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42514 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-02 00:19:27 +00:00
Dale Johannesen
317096ab37
Add sqrt and powi intrinsics for long double.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42423 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28 01:08:20 +00:00
Evan Cheng
d23aa5a053
Rename keyword "modify" -> "implicit".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42282 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 01:48:59 +00:00
Evan Cheng
a3ca3149f2
Add CopyCost to TargetRegisterClass. This specifies the cost of copying a value
...
between two registers in the specific class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42123 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19 01:35:01 +00:00
Evan Cheng
30729b48d4
Bug fix and minor clean up of generated code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42069 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 22:26:41 +00:00
Chris Lattner
10814820f6
regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42036 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 17:40:48 +00:00
Dan Gohman
cb648f90a2
Remove spurious consts. This fixes warnings with compilers that
...
are strict about such things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14 20:08:19 +00:00
Evan Cheng
85dbe1a1d2
Initial support for multi-result patterns:
...
1.
[(set GR32:$dst, (add GR32:$src1, GR32:$src2)),
(modify EFLAGS)]
This indicates the source pattern expects the instruction would produce 2 values. The first is the result of the addition. The second is an implicit definition in register EFLAGS.
2.
def : Pat<(parallel (addc GR32:$src1, GR32:$src2), (modify EFLAGS)), ()>
Similar to #1 except this is used for def : Pat patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41897 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-12 23:30:14 +00:00
Evan Cheng
aeb7d4d760
Allow set operators with multiple destinations, i.e. (set x, y, (op a, b)).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41861 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 19:52:18 +00:00
Chris Lattner
111e8ce3a2
update this to use llvm-config, patch by Jose M. Moya
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41849 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 17:09:54 +00:00
Evan Cheng
ef61ed3507
TableGen no longer emit CopyFromReg nodes for implicit results in physical
...
registers. The scheduler is now responsible for emitting them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41781 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07 23:59:02 +00:00
Evan Cheng
425e8c7eae
Always check the type of node. This prevents situations such as selecting 32-bit rotate target instruction for a 64-bit node when 64-bit pattern is missing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41710 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-04 20:18:28 +00:00
Dan Gohman
0fee3ff93e
Add MVT::fAny for overloading intrinsics on floating-point types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41128 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-16 21:57:19 +00:00
Reid Spencer
f6101ac7bc
Make use of the llvm-ld tool's new ability to read input from stdin to extract
...
the list of link time passes to be run, just as for opt, with the
-debug-pass=Arguments option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41040 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13 06:19:51 +00:00
Reid Spencer
3c5b57c884
Now that llvm-ld can accept - as input from stdin, use this feature to extract
...
the pass arguments that it supports.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41019 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-11 16:11:22 +00:00
Rafael Espindola
594d37e21a
propagate struct size and alignment of byval arguments to the DAG
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40986 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-10 14:44:42 +00:00
Chandler Carruth
a583990ec8
This resolves a regression of BasicAA which failed to find any memory information for overloaded intrinsics (PR1600). This resolves that issue, and improves the matching scheme to use a BitVector rather than a binary search.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40872 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-06 20:57:16 +00:00
Chandler Carruth
6994040a95
This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.
...
This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-04 01:51:18 +00:00
Evan Cheng
b5910820ce
Added TargetInstrDescriptor::numDefs - num of results.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40709 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-02 00:20:17 +00:00
Dan Gohman
f452207d20
More explicit keywords.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40589 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 14:51:59 +00:00
Chuck Rose III
936baaa5ae
VStudio compiler errors and placing Function*->ExFunc map under ManagedStatic control.
...
This commit fixes two things. One is a pair of VStudio compiler errors stemming from variables
which defined within the for loop statement and also within the body of the for loop. I fixed these
by renaming one of the two variables. Additionally, I've made the Function*->ExFunc map in
ExternalFunctions.cpp a ManagedStatic object, so that cleanup will be done on llvm_shutdown. In repeated
uses of the interpreter, where the same Function* address may get used for completely differnet functions,
this was causing a crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40558 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 18:26:35 +00:00
Dan Gohman
face9e56a1
Fix a pasto in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40527 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-26 15:11:00 +00:00
Christopher Lamb
1367fd09cb
Have register info provide the inverse mapping of register->superregisters. PR1350
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40519 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-26 08:01:58 +00:00
Christopher Lamb
08d52071ba
Add target independent MachineInstr's to represent subreg insert/extract in MBB's. PR1350
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40518 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-26 07:48:21 +00:00
Christopher Lamb
8245510ae0
Teach TableGen about the new vector types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40513 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-26 06:41:18 +00:00
Dan Gohman
a6a1ab3d28
A minor simplication in the generated code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40479 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-24 22:58:00 +00:00
Chandler Carruth
ef3d01635a
Fixing some differences between CVS and SVN diff'ing. Reid fixed these already,
...
but I think it got lost in the conversion mess.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40107 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-20 17:21:54 +00:00
Evan Cheng
102dc195b6
No need for noResults anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40075 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-20 00:21:23 +00:00
Evan Cheng
64d80e3387
Change instruction description to split OperandList into OutOperandList and
...
InOperandList. This gives one piece of important information: # of results
produced by an instruction.
An example of the change:
def ADD32rr : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
=>
def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40033 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-19 01:14:50 +00:00
Chris Lattner
ad8c531e20
Work around a bogus gcc 4.2 warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39993 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-18 04:51:57 +00:00
Dan Gohman
3bf6e183d5
Eliminate an unused parameter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39828 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 20:16:50 +00:00
Evan Cheng
88cc092ca5
Try committing again. Add OptionalDefOperand. Remove clobbersPred.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38498 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-10 18:05:01 +00:00
Reid Spencer
4b51fb98e5
Remove the cvsupdate script. Its no longer useful in the face of
...
tools such as svn info and svn status.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38446 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-09 08:31:14 +00:00
Reid Spencer
0793b36fd6
Subversionify the script.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38440 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-09 07:41:11 +00:00
Evan Cheng
c419bd3396
ImmutablePredicateOperand is no more.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37963 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-06 23:23:38 +00:00
Rafael Espindola
1aa7efbd2c
Add the byval attribute
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37940 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-06 10:57:03 +00:00
Evan Cheng
a955939ca2
Refactor code to add initial support for OptionalDefOperand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37933 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-06 01:05:26 +00:00
Evan Cheng
7774be4a74
Teach DAGISelEmitter about zero_reg.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37900 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-05 07:19:45 +00:00
Evan Cheng
8012b077dd
Instructions with ImmutablePredicateOperand aren't really predicable since their predicates are fixed at isel time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37899 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-05 07:19:29 +00:00
Reid Spencer
75f75b9137
Ignore the .svn directories so countloc.sh and llvmgrep won't traverse them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37867 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-04 01:35:32 +00:00
Anton Korobeynikov
fbaca4226d
Test modified svn mailer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37859 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-03 21:57:50 +00:00
Reid Spencer
ece1f685a8
Remove the last vestiges of -usesvn.
...
Implement -usecvs just in case we need to go back to cvs for some reason.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37837 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-02 06:19:57 +00:00
Reid Spencer
ceb9d784e0
We want the Subversion checkout to succeed even if we don't specify
...
the -verbose option! Doh!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37836 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-02 06:16:32 +00:00
John Criswell
eecd71151c
Applied Reid's patch. Long live Subversion!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37812 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-29 19:12:50 +00:00
John Criswell
e644ef7b09
Convert .cvsignore files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-29 16:35:07 +00:00
Reid Spencer
1c01cf9baa
Fix problems with the checkout and cd directories for SVN checkout.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37797 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-29 03:12:42 +00:00
Evan Cheng
5e4f292e53
One additional field in TargetRegisterDesc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37760 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-27 17:09:34 +00:00
Evan Cheng
c4f2fe0694
Add immediate sub-registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37738 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-26 20:59:16 +00:00
Reid Spencer
c9a15d5091
Update for Subversion conversion:
...
1. Fix comments for -usesvn and -svnurl options.
2. Fix default URL for SVN access.
3. Fix paths to accommodate "trunk" when checking out from SVN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37736 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-26 17:08:16 +00:00
Dan Gohman
d45eddd214
Revert the earlier change that removed the M_REMATERIALIZABLE machine
...
instruction flag, and use the flag along with a virtual member function
hook for targets to override if there are instructions that are only
trivially rematerializable with specific operands (i.e. constant pool
loads).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37728 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-26 00:48:07 +00:00
Dan Gohman
9a0930dbd9
Fix a typo in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37727 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-26 00:43:18 +00:00
Chris Lattner
20c2b35c2f
silence warning when assertions are disabled.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37654 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-19 06:40:46 +00:00
Dan Gohman
82a87a0172
Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoad
...
with a general target hook to identify rematerializable instructions. Some
instructions are only rematerializable with specific operands, such as loads
from constant pools, while others are always rematerializable. This hook
allows both to be identified as being rematerializable with the same
mechanism.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37644 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-19 01:48:05 +00:00
Evan Cheng
eaa91b0a1f
Replace TargetInstrInfo::CanBeDuplicated() with a M_NOT_DUPLICABLE bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37643 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-19 01:26:51 +00:00
Christopher Lamb
a321125e8b
Add support to tablegen for specifying subregister classes on a per register class basis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-13 22:20:15 +00:00
Evan Cheng
b5c1c9c8e3
Add clobbersPred - instruction that clobbers condition code / register which are used to predicate instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37465 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-06 10:14:55 +00:00
Bill Wendling
851879c4cf
Patches by Chuck Rose to unbreak V Studio builds.
...
Thanks Chuck!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37428 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-04 23:52:59 +00:00
Dan Gohman
b9daee9ece
Remove the operator<< for MVT::ValueType in preparation for MVT::ValueType
...
being changed from an enum to an integer type, which can't have a custom
operator<< overload.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37412 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-04 16:11:03 +00:00
Reid Spencer
84c614d1ac
The Intrinsic::getDeclaration function's Tys parameter only contains the
...
types of the iAny types involved in the overloaded intrinsic. Thus, we
can't use the argument number as the index but have to count them separately
in order to index Tys correctly. This patch rectifies this situation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37296 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-22 19:30:31 +00:00
Evan Cheng
5127ce09a4
Rename M_PREDICATED to M_PREDICABLE; opcode can be specified isPredicable without having a PredicateOperand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37116 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-16 20:45:24 +00:00
Chris Lattner
4ef9b11100
Fix CodeGen/PowerPC/2007-05-14-InlineAsmSelectCrash.ll, the other recent
...
patches are also needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37070 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-15 01:36:44 +00:00
Evan Cheng
30d15757e3
Added \!con(a,b) syntax to concatnate two dag fragments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37063 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-15 01:23:24 +00:00
Evan Cheng
3ab6dcfc54
Mark all (not just the first) predicate operand M_PREDICATE_OPERAND.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37061 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-15 01:20:36 +00:00
Evan Cheng
39376d0843
PredicateOperand related bug fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37060 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-15 01:19:51 +00:00
Evan Cheng
7055fd02e3
Remove duplicated line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37040 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-14 18:03:45 +00:00
Evan Cheng
59039632e1
If a PredicateOperand has an empty ExecuteAlways field, treat it as if a normal operand for isel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36946 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-08 21:04:07 +00:00
Bill Wendling
4222d806fa
Add an "implies" field to features. This indicates that, if the current
...
feature is set, then the features in the implied list should be set also.
The opposite is also enforced: if a feature in the implied list isn't set,
then the feature that owns that implies list shouldn't be set either.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36756 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 20:38:40 +00:00
Lauro Ramos Venancio
4604023412
Make my proxy happy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36665 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 14:05:07 +00:00
Nate Begeman
6f7c8ffd9a
A bit of feedback from Chris that I missed; error rather than asserting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36619 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 06:08:36 +00:00
Nate Begeman
7bf1c272ab
llvm bug #1350 , parts 1, 2, and 3.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36618 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 05:57:02 +00:00
Dan Gohman
01929c0482
Update a comment to reflect recent changes in the type system.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36486 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 19:43:14 +00:00
Lauro Ramos Venancio
195c6c298a
bugfix: remember that ResNode was declared.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36477 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 17:03:22 +00:00
Christopher Lamb
8dadf6b13a
Fix generation of certain scheduler itineraries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36338 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 09:04:24 +00:00
Evan Cheng
4fc4fab856
Bug fix; add super-registers sets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36296 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 00:55:29 +00:00
Lauro Ramos Venancio
b3a0417cad
Implement "general dynamic", "initial exec" and "local exec" TLS models for
...
X86 32 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36283 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-20 21:38:10 +00:00
Evan Cheng
3cafbf7e5f
Add sub-registers sets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36278 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-20 21:13:46 +00:00
Reid Spencer
2db15e2b42
For PR1328:
...
Don't assert everytime an intrinsic name isn't recognized. Instead, make
the assert optional when callin getIntrinsicID(). This allows the assembler
to handle invalid intrinsic names gracefully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36120 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 06:54:34 +00:00
Tanya Lattner
849c9a28e1
Adding target triplet to be passed to database.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35958 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-13 04:36:48 +00:00
Jeff Cohen
7545422f08
Correctly report version of GCC used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35866 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-10 19:13:43 +00:00
Reid Spencer
8e27acf489
Update for PathWithStatus
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35745 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-07 19:49:35 +00:00
Reid Spencer
b5fda75704
Terminate some lines that need to be.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35725 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-07 05:20:07 +00:00
Reid Spencer
99e865a9ce
Reinstate the SVN capability without requiring Date::Parse. As before the
...
SVN Repository is only used if requested with -usesvn option otherwise it
uses CVS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35721 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-07 04:41:16 +00:00
Reid Spencer
776964ac32
Revert this until the Date::Parse module can be installed on the nightly
...
testers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35657 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-04 06:59:36 +00:00
Reid Spencer
d0b0879949
Prepare for Subversion migration by implementing a -usesvn to tell the
...
script to to check out llvm and llvm-test from Subversion instead of CVS.
Without this option the script will continue to check out from CVS. To
specify the Subversion URL, set the SVNURL environment variable or pass
-svnurl followed by the URL. For now, -svnurl will default to Reid's
temporary (read-only, daily snapshot) SVN server. Try it out if you like!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35621 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-03 08:28:44 +00:00
Reid Spencer
c4de3dec62
For PR1297:
...
Implement code generation for overloaded intrinsic functions. The basic
difference is that "actual" argument types must be provided when
constructing intrinsic names and types. Also, for recognition, only the
prefix is examined. If it matches, the suffix is assumed to match. The
suffix is checked by the Verifier, however.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35539 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 07:20:02 +00:00
Bill Wendling
d4eeb80043
Add better support for keywords.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35386 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-27 20:23:56 +00:00
Bill Wendling
eebc8a1bc5
Add support for the v1i64 type. This makes better code for this:
...
#include <mmintrin.h>
extern __m64 C;
void baz(__v2si *A, __v2si *B)
{
*A = C;
_mm_empty();
}
We get this:
_baz:
call "L1$pb"
"L1$pb":
popl %eax
movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax
movq (%eax), %mm0
movl 4(%esp), %eax
movq %mm0, (%eax)
emms
ret
GCC gives us this:
_baz:
pushl %ebx
call L3
"L00000000001$pb":
L3:
popl %ebx
subl $8, %esp
movl L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax
movl (%eax), %edx
movl 4(%eax), %ecx
movl 16(%esp), %eax
movl %edx, (%eax)
movl %ecx, 4(%eax)
emms
addl $8, %esp
popl %ebx
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35351 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-26 07:53:08 +00:00
Duncan Sands
28ecc1a6fa
The -funcresolve and -raise options no longer exist.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35272 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-22 21:06:50 +00:00
Evan Cheng
04677a3b49
Recognize target instruction flag 'isReMaterializable'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35159 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-19 06:20:37 +00:00
Anton Korobeynikov
d0b82b301d
Refactoring of formal parameter flags. Enable properly use of
...
zext/sext/aext stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35008 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-07 16:25:09 +00:00
Anton Korobeynikov
1d9baccc9b
Use new SDIselParamAttr enumeration. This removes "magick" constants
...
from formal attributes' flags processing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34963 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-06 08:12:33 +00:00
Chris Lattner
e3bab80e33
rename some CCActions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34724 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-28 05:29:06 +00:00
Chris Lattner
2092c8ac9c
implement CCPromoteToType
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34720 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-28 04:43:48 +00:00
Chris Lattner
50d456539d
reapply
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34697 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 22:08:27 +00:00
Chris Lattner
88ee2a18a7
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34696 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 22:05:51 +00:00
Evan Cheng
53c9b3f68c
Backing out
...
CodeGenTarget.cpp updated: 1.82 -> 1.83
Record.cpp updated: 1.55 -> 1.56
Record.h updated: 1.59 -> 1.60
TableGen.cpp updated: 1.47 -> 1.48
It's missing CallingConvEmitter.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34693 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 21:44:08 +00:00
Chris Lattner
798dc7adb4
initial support for calling convention generation, still unfinished.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34682 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 20:43:37 +00:00
Chris Lattner
114e5dd464
emit an enum value for the # of target registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34624 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 03:34:38 +00:00
Chris Lattner
d263114d7a
the lengths of the strings are known, just use memcmp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34321 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:26:16 +00:00
Chris Lattner
3b515802f6
Implement Function::getIntrinsicID without it needing to call Value::getName,
...
which allocates a string. This speeds up instcombine on 447.dealII by 5%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34318 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:17:16 +00:00
Reid Spencer
ac9dcb94dd
For PR1195:
...
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 03:39:18 +00:00
Reid Spencer
9d6565a5b1
For PR1195:
...
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:26:10 +00:00
Chris Lattner
e5ff00870a
remove obsolete path
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34273 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-14 07:39:35 +00:00
Jim Laskey
95af592a63
Automatically generating intrinsic declarations from Dan Gohman. Modified
...
to construct FunctionType in separate function, and, have getDeclaration
return a Function instead of a Constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34008 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 20:38:26 +00:00
Reid Spencer
c9c1787907
Set the new NO_INSTALL flag for build-only tools.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33967 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:51:28 +00:00
Jim Laskey
95d97b90e8
Error check and eliminate unnecessary value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33966 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:30:58 +00:00
Jim Laskey
01ba6adc8f
Regenerate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33965 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:20:07 +00:00
Jim Laskey
81a21eae3e
Deemed too cute to live.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33964 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:19:44 +00:00
Jim Laskey
251e3c6f6f
Regenerate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33963 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:03:31 +00:00
Jim Laskey
ba4cc09f51
Support var arg intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33962 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:02:54 +00:00
Reid Spencer
90a2eb02e5
Use opt to generate the list of passes to run.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33903 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 06:10:19 +00:00
Jim Laskey
844b892246
Make the constant honest.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33557 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 23:00:54 +00:00
Jim Laskey
a683f9ba13
Files missing from LABEL check in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33539 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 17:29:20 +00:00
Chris Lattner
d8a1728b5a
Make tblgen error more useful. Patch by B. Scott Michel
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33295 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 07:45:12 +00:00
Reid Spencer
2c13f6657a
Fix this tool for use on Darwin which requires the file to come after the
...
commands. Linux is more forgiving.
Patch by Gordon Henriksen. Thanks, Gordon!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33285 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 03:38:22 +00:00
Reid Spencer
ea92a109ff
Join two lines that caused awk to squak on some platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33274 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-16 22:41:12 +00:00
Reid Spencer
a54b7cbd45
For PR1064:
...
Implement the arbitrary bit-width integer feature. The feature allows
integers of any bitwidth (up to 64) to be defined instead of just 1, 8,
16, 32, and 64 bit integers.
This change does several things:
1. Introduces a new Derived Type, IntegerType, to represent the number of
bits in an integer. The Type classes SubclassData field is used to
store the number of bits. This allows 2^23 bits in an integer type.
2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and
64-bit integers. These are replaced with just IntegerType which is not
a primitive any more.
3. Adjust the rest of LLVM to account for this change.
Note that while this incremental change lays the foundation for arbitrary
bit-width integers, LLVM has not yet been converted to actually deal with
them in any significant way. Most optimization passes, for example, will
still only deal with the byte-width integer types. Future increments
will rectify this situation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33113 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-12 07:05:14 +00:00
Reid Spencer
40beb40f4b
Put in some needed \ at the end of lines!!!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33070 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-11 06:51:56 +00:00
Reid Spencer
db8d2bed6a
For PR950:
...
Convert signed integer types to signless.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32786 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 05:50:28 +00:00
Reid Spencer
b1788a341c
Remove some clutter and make it keep going instead of stopping at the
...
first difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32645 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-18 00:37:37 +00:00
Jim Laskey
dbe4006cf3
Ignore entries with blank names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32491 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 20:55:58 +00:00
Jim Laskey
9a7dfa3fd4
Rollback changes to take a different tack.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32488 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 19:26:50 +00:00
Jim Laskey
55a7ec33d7
Honor the command line specification for machine type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32483 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 16:07:33 +00:00
Reid Spencer
33c9683865
Provide a script that can track down which optimization pass causes
...
different code to be produced between two llvm builds that differe slightly.
This is useful in tracking down mis-optimization bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32435 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 17:42:12 +00:00
Reid Spencer
2232a80ef1
Allow the input of the test program to be specified.
...
Don't generate the reference output for each comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32395 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-09 04:42:33 +00:00
Reid Spencer
f8463a38bf
Add the -ldl library option.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32369 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-08 18:58:38 +00:00
Bill Wendling
f5da13367f
What should be the last unnecessary <iostream>s in the library.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32333 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 22:21:48 +00:00
Evan Cheng
0555122412
Match TargetInstrInfo changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32107 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 22:57:41 +00:00
Reid Spencer
ba07a69222
Only show the first few lines of difference.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31901 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-25 04:07:06 +00:00
Reid Spencer
2bae1f58ed
Add an option to enable lli (interpreter mode) testing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31899 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-24 20:34:16 +00:00
Reid Spencer
6d0fbd4185
Stop early if there is no mis-optimization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31893 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-22 03:46:45 +00:00
Chris Lattner
f7560ed6b1
Fix PR1001, patch by Nikhil Patil!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31880 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 18:54:33 +00:00
Reid Spencer
161a2fb9d8
Make the awk filter print out which files its eliminating.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31851 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 18:30:18 +00:00
Reid Spencer
35d958cf76
This is a utility for preparing patches against LLVM. It runs cvs diff with
...
the correct options, places the patch content in order that makes sense for
review, and filters cruft out of the patch (like diffs in *.cvs files). It
produces both a NAME.patch.raw (unfiltered) and NAME.patch (filtered) file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31850 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 18:02:30 +00:00
Reid Spencer
5b31cf0f9f
Provide a list of gccld optimization switches.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31849 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 17:14:09 +00:00
Evan Cheng
fb1aab0673
Add opcode to TargetInstrDescriptor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31804 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 01:46:27 +00:00
Reid Spencer
a8c3ff456a
Use a release version of bugpoint, if found. Include gccld passes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31786 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-16 18:32:47 +00:00
Chris Lattner
f64f9a4b75
Remove the isTwoAddress property from the CodeGenInstruction class. It should
...
not be used for anything other than backwards compat constraint handling.
Add support for a new DisableEncoding property which contains a list of
registers that should not be encoded by the generated code emitter. Convert
the codeemitter generator to use this, fixing some PPC JIT regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31769 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 23:23:02 +00:00
Chris Lattner
0bb75004ff
ADd support for adding constraints to suboperands
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31748 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 02:38:17 +00:00
Chris Lattner
33a400477b
restore some 'magic' code that I removed: it is needed. Add comments explaining
...
why.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31743 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 22:17:10 +00:00
Chris Lattner
717a611f79
minimal hack to get patterns whose result type is iPTR to be selected.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31742 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 21:50:27 +00:00
Chris Lattner
0d1bb1322c
remove some dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31740 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 21:41:35 +00:00
Chris Lattner
ab51ddd7c0
Add support for nodes that return iPTR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31739 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 21:32:01 +00:00
Chris Lattner
646085dde9
changes to get ptr_rc to be accepted in patterns. This is needed for ppc preinc
...
stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31738 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 21:18:40 +00:00
Chris Lattner
7c3a96b81a
Fix a bug handling nodes with variable arguments. The code was fixed to assume
...
that there were two input operands before the variable operand portion. This
*happened* to be true for all call instructions, which took a chain and a
destination, but was not true for the PPC BCTRL instruction, whose destination
is implicit.
Making this code more general allows elimination of the custom selection logic
for BCTRL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31732 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 18:41:38 +00:00
Reid Spencer
0244099956
Add some output so the user is informed while they wait.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31700 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-13 16:08:51 +00:00
Reid Spencer
2fe47fccb9
Add -lstdc++ to the link line for C++ programs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31678 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 10:22:48 +00:00
Chris Lattner
f196839562
allow ptr_rc to explicitly appear in an instructions operand list, it doesn't
...
have to be a subpart of a complex operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31618 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-10 02:01:40 +00:00
Evan Cheng
a1fd6504aa
Remove M_2_ADDR_FLAG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31583 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-09 02:22:54 +00:00
Reid Spencer
dd2b95534f
Don't run bugpoint if we can't find a misoptimization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31582 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-09 01:47:04 +00:00
Reid Spencer
e4d8f33b0f
Print a usage message if too few arguments to program.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31581 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-09 00:50:32 +00:00
Reid Spencer
28b7c7feab
Add a utility script to find a mis-optimization problem. This sometimes
...
helps when bugpoint can't find the problem directly because it needs the
set of optimizations that cause the program to fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31580 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-09 00:26:17 +00:00
Evan Cheng
892aaf8d74
Divide select methods into groups by SelectionDAG node opcodes (ISD::ADD,
...
X86ISD::CMP, etc.) instead of SDNode names (add, x86cmp, etc). We now allow
multiple SDNodes to map to the same SelectionDAG node (e.g. store, indexed
store).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31575 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-08 23:01:03 +00:00
Evan Cheng
811731e340
Always pass the root node to ComplexPattern isel matching function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31570 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-08 20:31:10 +00:00
Chris Lattner
29434364dd
emit TIED_TO correctly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31484 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 01:27:55 +00:00
Chris Lattner
d9a7f4db5f
Mark predicate operands as such in operand info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31483 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-06 23:53:31 +00:00
Chris Lattner
a0cca4ae26
simplify the way operand flags and constraints are handled, making it easier
...
to extend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31481 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-06 23:49:51 +00:00
Chris Lattner
a818e92f8b
recognize ppc's blr instruction as predicated
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31480 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-06 21:44:54 +00:00
Chris Lattner
5fa39df5ba
regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31472 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 23:28:58 +00:00
Jeff Cohen
d41b30def3
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 19:31:28 +00:00
Evan Cheng
c51737f46f
Clean up some code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31451 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 09:40:23 +00:00
Chris Lattner
efe9f4a3b6
Parse PredicateOperand's. When an instruction takes one, have the generated
...
isel fill in the instruction operands with the 'execute always' value
automatically.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31448 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 05:12:02 +00:00
Chris Lattner
dfdaeb276e
First steps to getting PredicateOperand's to work. This handles instruction
...
and pat pattern definitions. Codegen is not right for them yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31444 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 01:35:50 +00:00
Chris Lattner
d438b53e76
eliminate need for the NumMIOperands field in Operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31432 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 23:45:17 +00:00
Reid Spencer
fa3e3b9427
Remove an unused variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31403 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:48:30 +00:00
Chris Lattner
64a8dddb73
silence warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31402 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:45:13 +00:00
Reid Spencer
8b9ea8099e
Don't write out variables that are never used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31396 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:28:12 +00:00
Chris Lattner
9c5d4de837
silence warnings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31392 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:11:05 +00:00
Reid Spencer
63fd6ad77b
Revert last patch which causes tblgen to segfault (why, I'm not sure).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31383 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 21:07:40 +00:00
Reid Spencer
9ec4849ff6
For PR786:
...
Remove unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31381 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 20:46:16 +00:00
Reid Spencer
3ed469ccd7
For PR786:
...
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 20:25:50 +00:00
Evan Cheng
4c2b7a3808
Tied-to constraint must be op_with_larger_idx = op_with_smaller_idx or else throw an exception.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31361 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 23:03:11 +00:00
Evan Cheng
0db427bb2d
Not meant to be checked in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31334 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 00:27:59 +00:00
Evan Cheng
e2ba897588
Add operand constraints to TargetInstrInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31333 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 00:27:05 +00:00
Reid Spencer
93c456c4bd
80 cols fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31050 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-19 15:24:04 +00:00
Evan Cheng
13e9e9c235
Passing isel root and use operands to ComplexPattern functions, these should do the usual load folding checks as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30972 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-16 06:33:44 +00:00
Evan Cheng
ce1381afd9
When checking if a load can be folded, we check if there is any non-direct
...
way to reach the load via any nodes that would be folded. Start from the
root of the matched sub-tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30956 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-14 08:30:15 +00:00
Evan Cheng
4f77616c28
Really remove dead nodes from isel queue.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30923 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-12 23:18:52 +00:00
Evan Cheng
1fae00f1ad
Use RemoveDeadNode to kill dead node.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30917 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-12 20:35:19 +00:00
Evan Cheng
4326ef582b
Prior load folding check on chain operand was too strict. It requires the
...
chain operand to point to the load being folded. Now we relax this, traversing
up the chain, if it doesn't reach the load, then it's ok. We will create a
TokenFactor (of all the chain operands and the load's chain) to capture all
the control flow dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30897 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-12 02:08:53 +00:00
Evan Cheng
94b3040fef
Added properties such as SDNPHasChain to ComplexPattern.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30890 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-11 21:02:01 +00:00
Chris Lattner
bcc3f0a61d
regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30888 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-11 18:13:09 +00:00
Chris Lattner
1ceb6c830f
Add support for let expressions around an mdef. This implements a new part
...
of Regression/TableGen/MultiClass.td.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30887 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-11 18:12:44 +00:00
Chris Lattner
39e73f7c83
Special case tblgen generated code for patterns like (and X, 255) or (or X, 42).
...
The dag/inst combiners often 'simplify' the masked value based on whether
or not the bits are live or known zero/one. This is good and dandy, but
often causes special case patterns to fail, such as alpha's CMPBGE pattern,
which looks like "(set GPRC:$RC, (setuge (and GPRC:$RA, 255), (and GPRC:$RB, 255)))".
Here the pattern for (and X, 255) should match actual dags like (and X, 254) if
the dag combiner proved that the missing bits are already zero (one for 'or').
For CodeGen/Alpha/cmpbge.ll:test2 for example, this results in:
sll $16,1,$0
cmpbge $0,$17,$0
ret $31,($26),1
instead of:
sll $16,1,$0
and $0,254,$0
and $17,255,$1
cmpule $1,$0,$0
ret $31,($26),1
... and requires no target-specific code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30871 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-11 04:05:55 +00:00
Chris Lattner
be8e72120d
Split some code out into a new method. The generated code is exactly
...
identical, this is just a refactoring.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30868 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-11 03:35:34 +00:00
Evan Cheng
d3eea90a9b
Predicate function on the node should be matched before its childrean' matching
...
code. This is especially important now matching ISD::LOAD also requires a
Predicate_Load call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30845 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-09 21:02:17 +00:00
Chris Lattner
dc52f17a30
regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30799 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-07 07:15:19 +00:00
Chris Lattner
85899b8b10
Bugfix: this allows multiclasses to have default arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30798 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-07 07:14:48 +00:00
Chris Lattner
90aa839c88
Fix more static dtor issues
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30725 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-04 21:52:35 +00:00
Jim Laskey
7a8efced36
Wrong directory.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30669 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-29 17:31:45 +00:00
Jim Laskey
ba9f0431f0
Fix search file for -release.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30647 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-28 18:45:11 +00:00
Jim Laskey
27b8ba088b
Add support for -release-asserts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30646 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-28 17:49:20 +00:00
Chris Lattner
259bda48e2
This:
...
AggregateString += "\0\0";
Doesn't add two nuls to the AggregateString (for obvious reasons), which
broke the asmprinter when the first character of an asm string was not
literal text.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30625 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-27 16:44:09 +00:00
Chris Lattner
16f046a6ce
Actually, name the method PrintSpecial to match other stuff in AsmPrinter.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30618 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-26 23:47:10 +00:00
Chris Lattner
1bf6361dfd
Add support for ${:foo} syntax, where "foo" is passed into "printSpecial" and
...
has no associated operand. This is useful for portably encoding stuff like
the comment character into an asm string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30617 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-26 23:45:08 +00:00
Chris Lattner
ce6e84ca6c
don't allow 'imm' or specific imms, like '1' on the LHS of a binop.
...
This shrinks X86GenDAGISel by ~330 lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30574 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-21 20:46:13 +00:00