Chris Lattner
a3f2d4c4f2
Fix Transforms/InstCombine/2006-02-07-SextZextCrash.ll
...
llvm-svn: 26040
2006-02-07 19:07:40 +00:00
Chris Lattner
4a327829c9
new testcase that caused instcombine to crash on 176.gcc last night.
...
llvm-svn: 26039
2006-02-07 19:07:25 +00:00
Evan Cheng
15369d0b89
Darwin ABI issues: weak, linkonce, etc. dynamic-no-pic support is complete.
...
Also fixed a function stub bug. Added weak and linkonce support for
x86 Linux.
llvm-svn: 26038
2006-02-07 08:38:37 +00:00
Evan Cheng
a7d31e53e8
Remind myself to add PIC and static asm printer support.
...
llvm-svn: 26037
2006-02-07 08:35:44 +00:00
Chris Lattner
9a35257363
Generalize MaskedValueIsZero into a ComputeMaskedNonZeroBits function, which
...
is just as efficient as MVIZ and is also more general.
Fix a few minor bugs introduced in recent patches
llvm-svn: 26036
2006-02-07 08:05:22 +00:00
Chris Lattner
c1a185741c
Make MaskedValueIsZero take a uint64_t instead of a ConstantIntegral as a
...
mask. This allows the code to be simpler and more efficient.
Also, generalize some of the cases in MVIZ a bit, making it slightly more aggressive.
llvm-svn: 26035
2006-02-07 07:27:52 +00:00
Chris Lattner
6318e7b7b7
Use Type::getIntegralTypeMask() to simplify some code
...
llvm-svn: 26034
2006-02-07 07:00:41 +00:00
Chris Lattner
a0d7868722
Implement the beginnings of a facility for simplifying expressions based on
...
'demanded bits', inspired by Nate's work in the dag combiner. This isn't
complete, but needs to unrelated instcombiner changes to continue.
llvm-svn: 26033
2006-02-07 06:56:34 +00:00
Chris Lattner
0c8352628d
add a new Type::getIntegralTypeMask() method, which is useful for clients that
...
want to do bitwise inspection of integer types.
llvm-svn: 26032
2006-02-07 06:17:10 +00:00
Jeff Cohen
e66383eb06
The interpreter assumes that the caller of runFunction() must be lli, and
...
therefore the function being called must be a main() returning an int. The
consequences when these assumptions are false are not good, so don't assume
them.
llvm-svn: 26031
2006-02-07 05:29:44 +00:00
Jeff Cohen
909ee648c7
Teach the interpreter to handle global variables that are added to a module after
...
interpretation has begun. The JIT already handles this situation correctly, and
the interpreter can already handle new functions being added.
llvm-svn: 26030
2006-02-07 05:11:57 +00:00
Jeff Cohen
e2ef48c356
Fix some truncation warnings.
...
llvm-svn: 26029
2006-02-07 03:34:35 +00:00
Chris Lattner
0c9ddf7346
fix an error compiling with -pedantic
...
llvm-svn: 26028
2006-02-07 01:12:49 +00:00
Chris Lattner
50af3c6eb7
Add the simple PPC integer constraints
...
llvm-svn: 26027
2006-02-07 00:47:13 +00:00
Evan Cheng
0ff5d88abd
Hoist all SDOperand declarations within a Select_{opcode}() to the top level
...
to reduce stack memory usage. This is intended to work around the gcc bug.
llvm-svn: 26026
2006-02-07 00:37:41 +00:00
Chris Lattner
da4bd5c64e
Eliminate the printCallOperand method, using a 'call' modifier on
...
printOperand instead.
llvm-svn: 26025
2006-02-06 23:41:19 +00:00
Chris Lattner
cf81cdcf95
Add support for modifier strings in machine instr descriptions. This allows
...
us to avoid creating lots of "Operand" types with different printers, instead
we can fold several together and use modifiers. For example, we can now use:
${target:call} to say that the operand should be printed like a 'call' operand.
llvm-svn: 26024
2006-02-06 23:40:48 +00:00
Chris Lattner
232dd5c069
Simplify the variant handling code, no functionality change.
...
llvm-svn: 26023
2006-02-06 22:43:28 +00:00
Chris Lattner
b6fae6bad7
Change prototype
...
llvm-svn: 26022
2006-02-06 22:18:19 +00:00
Chris Lattner
35a536d1f4
Add support for modifier characters to operand printers
...
llvm-svn: 26021
2006-02-06 22:17:23 +00:00
Chris Lattner
81280678cc
Change the prototype of PrintAsmOperand
...
llvm-svn: 26020
2006-02-06 22:16:41 +00:00
Jim Laskey
f36d437b39
Goodbye nasty macro.
...
llvm-svn: 26019
2006-02-06 21:54:05 +00:00
Jim Laskey
0cfdd812d1
Edit requests from Sabre.
...
llvm-svn: 26018
2006-02-06 19:12:02 +00:00
Andrew Lenharth
10a2391def
see what this allignment thing will do
...
llvm-svn: 26017
2006-02-06 17:15:17 +00:00
Jim Laskey
e27947e8fb
Changing model for the construction of debug information.
...
llvm-svn: 26016
2006-02-06 15:33:21 +00:00
Jim Laskey
62908083eb
We seem to have settled to __DWARF for section name.
...
llvm-svn: 26015
2006-02-06 14:16:15 +00:00
Evan Cheng
2af9230f1e
At the end of isel, select a replacement node for each handle that does not
...
have one. This can happen if a load's real uses are dead (i.e. they do not
have uses themselves).
llvm-svn: 26014
2006-02-06 08:12:55 +00:00
Evan Cheng
6f1778d4e1
Name change.
...
llvm-svn: 26013
2006-02-06 06:03:35 +00:00
Evan Cheng
080996281c
- Update load folding checks to match those auto-generated by tblgen.
...
- Manually select SDOperand's returned by TryFoldLoad which make up the
load address.
llvm-svn: 26012
2006-02-06 06:02:33 +00:00
Evan Cheng
09b5e544a9
Handle HANDLENODE: just return itself.
...
llvm-svn: 26011
2006-02-05 08:46:14 +00:00
Evan Cheng
9fb67ea859
Complex pattern isel code shouldn't select nodes.
...
llvm-svn: 26010
2006-02-05 08:45:01 +00:00
Chris Lattner
c0012f8818
Fix the Sparc backend with Evan's recent tblgen changes
...
llvm-svn: 26009
2006-02-05 08:35:50 +00:00
Chris Lattner
5a9a874f44
SparcV8 -> Sparc
...
llvm-svn: 26008
2006-02-05 08:30:45 +00:00
Chris Lattner
da908d19fd
This xform isn't safe
...
llvm-svn: 26007
2006-02-05 08:26:16 +00:00
Nate Begeman
2fe9dfedf0
Back out previous commit, it isn't safe.
...
llvm-svn: 26006
2006-02-05 08:23:00 +00:00
Nate Begeman
c0e2bb488a
fold c1 << (x + c2) into (c1 << c2) << x. fix a warning.
...
llvm-svn: 26005
2006-02-05 08:07:24 +00:00
Chris Lattner
9898b81e27
some stuff is done
...
llvm-svn: 26004
2006-02-05 07:54:37 +00:00
Chris Lattner
807c68d572
Turn A % (C << N), where C is 2^k, into A & ((C << N)-1) [urem only].
...
Turn A / (C1 << N), where C1 is "1<<C2" into A >> (N+C2) [udiv only].
Tested with: rem.ll:test5, div.ll:test10
llvm-svn: 26003
2006-02-05 07:54:04 +00:00
Chris Lattner
bbd8dc6edd
new testcases
...
llvm-svn: 26002
2006-02-05 07:52:47 +00:00
Nate Begeman
c93c3d11d6
Handle urem by shifted powers of 2.
...
llvm-svn: 26001
2006-02-05 07:36:48 +00:00
Nate Begeman
0291708a49
handle combining A / (B << N) into A >>u (log2(B)+N) when B is a power of 2
...
llvm-svn: 26000
2006-02-05 07:20:23 +00:00
Evan Cheng
973e4051d6
Use SelectRoot() as the entry to any tblgen based isel.
...
llvm-svn: 25998
2006-02-05 06:51:51 +00:00
Evan Cheng
fb902782e8
Use SelectRoot() as entry of any tblgen based isel.
...
llvm-svn: 25997
2006-02-05 06:46:41 +00:00
Chris Lattner
42160869d1
Encourage use of the V8 ABI over the V9 ABI.
...
llvm-svn: 25996
2006-02-05 06:44:17 +00:00
Evan Cheng
0b5d4a10a9
Allow more loads to be folded which were previously prevented from happening
...
due to ordering issue. i.e. they were selected for chain use first.
Now at load select time, check if it is being selected for a chain use and if
it has only a single real use. If so, return a HANDLENODE (with the load as
its operand) in its place and record it.
When it is folded or the load is selected for a real use, the isel records it
as the replacement for the HANDLENODE. The replacement is done when all nodes
are selected.
This scheme exposed a couple of problems where cycles can happen. (See comments
in EmitMatchCode() for descriptions of the problems and their workaround /
solutions.) These problems have been resolved with a small compile time
penality.
llvm-svn: 25995
2006-02-05 06:43:12 +00:00
Chris Lattner
44b6352988
This document is out of date. :(
...
llvm-svn: 25994
2006-02-05 06:40:12 +00:00
Chris Lattner
fe5f01cca6
V8 -> Sparc
...
llvm-svn: 25993
2006-02-05 06:39:36 +00:00
Chris Lattner
1d15bef6ac
Remove the SparcV8 backend. It has been renamed to be the Sparc backend.
...
llvm-svn: 25992
2006-02-05 06:33:29 +00:00
Chris Lattner
1e16099e9f
remove V8 reference
...
llvm-svn: 25991
2006-02-05 06:32:59 +00:00
Evan Cheng
d46a7fc65a
* Added SDNode::isOnlyUse().
...
* Fix hasNUsesOfValue(), it should be const.
llvm-svn: 25990
2006-02-05 06:29:23 +00:00