Reid Spencer
848414e49c
Implement new cast creation functions for both instructions and constant
...
expressions. These will get used to reduce clutter as we replace various
calls to createInferredCast and getCast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32191 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-04 20:17:56 +00:00
Reid Spencer
4b94f49091
For PR950: Provide an isCompare method for detection of ICmp and FCmp constant expressions. Change interfaces to allow for ICmp and FCmp predicate values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32167 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-04 05:19:02 +00:00
Reid Spencer
575d95ce37
Change inferred casts to explicit casts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32165 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-04 02:46:44 +00:00
Reid Spencer
56667123b7
Take a baby step towards getting rid of inferred casts. Provide methods on
...
CastInst and ConstantExpr that allow the signedness to be explicitly passed
in and reliance on signedness removed from getCastOpcode. These are
temporary measures useful during the conversion of inferred casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32164 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-04 02:43:42 +00:00
Reid Spencer
c1126ac7cd
Remove dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32157 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-03 16:21:33 +00:00
Reid Spencer
728b6db6fb
Implement creation of ICmp and FCmp constant expressions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32147 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-03 05:48:19 +00:00
Chris Lattner
ee740834ab
Switch analysis groups to be unregistered when llvm_shutdown is called.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32110 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 23:46:50 +00:00
Chris Lattner
baf2ecda5f
Start moving pass registration over to using the ManagedStatic mechanism.
...
This fixes issues where passes get unregistered before llvm_shutdown is
called, and is generally cleaner and simpler. Analysis groups up next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32108 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 23:27:45 +00:00
Chris Lattner
cb90249ecb
pass cfgonly up the ctor instead of calling an explicit method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32105 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 22:36:43 +00:00
Chris Lattner
947c7689fc
move 'cfgonly' pass tracking into PassInfo, instead of handling it with
...
yet-another global data structure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32102 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 22:21:11 +00:00
Chris Lattner
5365489f6c
remove 'target constructor' support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32100 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 22:00:50 +00:00
Evan Cheng
bd7b67fd37
Typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32095 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 21:50:17 +00:00
Evan Cheng
6c14147d93
- Add getOperandConstraint() to TargetInstrDescriptor.
...
- convertToThreeAddress() change to allow single two-address MI to be converted
into one or more 3-address MIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32094 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 21:46:55 +00:00
Evan Cheng
8752ce61e1
Add weak reference directive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32091 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 20:47:11 +00:00
Chris Lattner
102e2d3c82
Remove dead methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32088 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 20:14:47 +00:00
Chris Lattner
68329b2187
add a new ConstantIntegral::get method. Simplify the implementation of
...
ConstantInt::get
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32080 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 19:20:02 +00:00
Reid Spencer
1a3d05dc73
Define the HAVE_PTHREAD symbol.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32059 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 03:46:01 +00:00
Jim Laskey
2172f966ca
Change global descriptor names to provide name, full name and linkage name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32036 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 14:35:45 +00:00
Evan Cheng
67f660cb08
- MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode.
...
- Remove the ugly TargetInstrDescriptors hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32032 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 07:08:44 +00:00
Reid Spencer
95e6effad2
Get the delegation right for InstVisitor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32025 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 21:37:00 +00:00
Bill Wendling
a90ba6c2aa
Oops! didn't mean to put this in there yet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32014 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 07:31:23 +00:00
Chris Lattner
3f7927c84c
add a hook to allow targets to hack on inline asms to lower them to llvm
...
when they want to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31997 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:12:32 +00:00
Bill Wendling
bdc679d564
Converted to using llvm streams instead of <iostream>s
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31992 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 00:39:47 +00:00
Bill Wendling
68fe61d6a1
Replacing std::iostreams with llvm iostreams. Some of these changes involve
...
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31990 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 00:19:40 +00:00
Bill Wendling
d96662360f
Support for llvm_ostreams.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31988 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 23:31:42 +00:00
Bill Wendling
c0ac317f93
Support for llvm streams.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31982 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:45:17 +00:00
Chris Lattner
d5b58c239e
Add a helper function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31981 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:32:35 +00:00
Bill Wendling
b5ebf15b2b
Added a temporary hack to get the llvm-streams to work for future checkins.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31978 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:21:29 +00:00
Andrew Lenharth
3655de6873
Add per-target support for asm translation in the cbe
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31972 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:52:20 +00:00
Evan Cheng
afed8142b7
Fix indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31956 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 02:22:51 +00:00
Bill Wendling
eba4be8090
Added helper function to transition to using llvm streams.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31953 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 02:07:29 +00:00
Evan Cheng
c0f64ffab9
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead
...
of opcode and number of operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31947 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 23:37:22 +00:00
Bill Wendling
eb7313805b
Protect against null streams.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31937 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 10:45:49 +00:00
Reid Spencer
3da59db637
For PR950:
...
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 01:05:10 +00:00
Bill Wendling
7fe9518698
Add method that will take a function pointer so that it can handle things
...
like "llvm_cerr << std::flush";
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31926 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-26 10:51:51 +00:00
Chris Lattner
a138c6c73a
setOperand should not zap the operand list or add implicit operands to an
...
instruction. Doing so breaks the FP stackifier, the alpha branch selector
the sparc fpmover.
This fixes PR1012 and CodeGen/X86/fp-stack-compare.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31876 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 17:57:22 +00:00
Reid Spencer
45fb3f3cb2
For PR950:
...
First in a series of patches to convert SetCondInst into ICmpInst and
FCmpInst using only two opcodes and having the instructions contain their
predicate value. Nothing uses these classes yet. More patches to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31867 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 01:22:35 +00:00
Chris Lattner
9b9cc5ab71
MachineInstr includes this
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31858 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:48:05 +00:00
Chris Lattner
1ccc4684f3
Implement operator<< for machine basic blocks to make it easier to dump them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31857 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:47:36 +00:00
Jim Laskey
9dea41d9e1
Hopefully a good crack at making debugging work on intel -disable-fp-elim.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31830 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 21:19:15 +00:00
Bill Wendling
52883e7a9a
Used llvm_ostream instead of std::ostream objects. This will reduce use
...
of the icky <iostream> class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31818 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 09:52:49 +00:00
Bill Wendling
e562ed1c92
Added wrappers for the std::cerr/std::cout objects. The wrappers will
...
soon replace all uses of those objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31817 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 09:51:22 +00:00
Bill Wendling
a72ac422a2
#ifndef NDEBUG the "if (Stream) ..." stuff.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31803 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 01:43:48 +00:00
Evan Cheng
33247d537d
Add opcode to TargetInstrDescriptor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31802 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 01:36:01 +00:00
Bill Wendling
8ea7c52185
Adjusted the // comments so that doxygen picks them up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31801 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 01:13:12 +00:00
Bill Wendling
1ea783f13a
Added "DOUT" macro. This is used as a replacement for the std::cerr
...
stream. It centralizes the use of std::cerr so that static c'tor/d'tors
aren't scattered around all over the place. The way to use it is like this:
DOUT << "This is a status line: " << Var << "\n";
If "-debug" is specified, it will print. Otherwise, it'll not print. If
NDEBUG is defined, the DOUT does nothing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31798 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 00:49:12 +00:00
Evan Cheng
9a1e9b9140
Allow target to specify alignment for function stub.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31788 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-16 20:04:54 +00:00
Bill Wendling
1bcf7a309e
Added "removeRange", which takes and removes an entire LiveRange.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31781 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-16 02:43:32 +00:00
Bill Wendling
01352aa187
Added a new method "CreateNewLiveInterval" which, given a list of
...
LiveRanges, creates a new LiveInterval from them. The LiveRanges should
have existed already in another LiveInterval, but removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31780 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-16 02:41:50 +00:00
Evan Cheng
dbf58837c4
ChangeToRegister should clear IsImp bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31772 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 23:55:03 +00:00