Duncan Sands
265752ae8f
Ding dong, the DoesntAccessMemoryFns and
...
OnlyReadsMemoryFns tables are dead! We
get more, and more accurate, information
from gcc via the readnone and readonly
function attributes.
llvm-svn: 44288
2007-11-23 19:30:27 +00:00
Duncan Sands
0973ae4c8c
Remove some logic I thoughtlessly copied over
...
from the old ADCE implementation (there it was
correct because the transform was being done
for read-only functions).
llvm-svn: 44287
2007-11-23 09:10:17 +00:00
Chris Lattner
ac2de0424b
Fix a bug where we'd try to find a scev value for a bitcast operand,
...
even though the bitcast operand did not have integer type. This fixes
PR1814.
llvm-svn: 44286
2007-11-23 08:46:22 +00:00
Chris Lattner
bff48b8f0d
Fix PR1817.
...
llvm-svn: 44284
2007-11-22 23:47:13 +00:00
Chris Lattner
54f0c2bed9
add some static icmpinst predicates.
...
llvm-svn: 44283
2007-11-22 23:43:29 +00:00
Chris Lattner
59d787cb83
add missing #include
...
llvm-svn: 44282
2007-11-22 23:19:05 +00:00
Anton Korobeynikov
f46167c649
Don't crash on bogus llvm.noinline. This is first part of PR1817 (preventing reduction)
...
llvm-svn: 44281
2007-11-22 22:30:10 +00:00
Duncan Sands
e79932aed4
Turn invokes of nounwind functions into ordinary calls.
...
llvm-svn: 44280
2007-11-22 22:24:59 +00:00
Duncan Sands
703986d327
Teach alias analysis about readnone/readonly functions.
...
Based on a patch by Török Edwin.
llvm-svn: 44279
2007-11-22 21:43:27 +00:00
Duncan Sands
6ec98952e0
Readonly/readnone functions are allowed to throw
...
exceptions, so don't turn invokes of them into
calls.
llvm-svn: 44278
2007-11-22 21:40:06 +00:00
Chris Lattner
192e1e5ae8
resolve the last fixme's in the new tblgen parser.
...
llvm-svn: 44277
2007-11-22 21:06:59 +00:00
Chris Lattner
ac95162b44
change the Init print methods to return strings, and implement
...
print in terms of that.
llvm-svn: 44276
2007-11-22 21:05:25 +00:00
Chris Lattner
118519d38d
eliminate a bunch of print methods that are duplicate with the getAsString() method.
...
llvm-svn: 44275
2007-11-22 20:51:34 +00:00
Chris Lattner
c447b7a449
Rewrite the tblgen parser in a recursive descent style, eliminating the bison parser.
...
This makes the parser much easier to understand, eliminates a ton of global variables,
and gives tblgen nice caret diagnostics. It is also faster, but tblgen probably doesn't
care about performance.
There are a couple of FIXMEs which I will take care of next.
llvm-svn: 44274
2007-11-22 20:49:04 +00:00
Duncan Sands
d05a55f03f
Rename the 'const' parameter attribute to 'readnone',
...
and the 'pure' parameter attribute to 'readonly'.
Names suggested by DannyB.
llvm-svn: 44273
2007-11-22 20:23:04 +00:00
Nick Lewycky
aff0962501
Instead of calculating constant factors, calculate the number of trailing
...
bits. Patch from Wojciech Matyjewicz.
llvm-svn: 44268
2007-11-22 07:59:40 +00:00
Nick Lewycky
e34dd3a90f
Create nodes for inline asm so that we don't crash looking for the node later.
...
llvm-svn: 44267
2007-11-22 03:07:37 +00:00
Chuck Rose III
644434c904
Switching back to strtoll. Including config.h. On VStudio builds, this overrides strtoll.
...
llvm-svn: 44264
2007-11-21 19:36:25 +00:00
Duncan Sands
7a8a7099b1
Fix a bug in which node A is replaced by node B, but later
...
node A gets back into the DAG again because it was hiding in
one of the node maps: make sure that node replacement happens
in those maps too.
llvm-svn: 44263
2007-11-21 16:43:19 +00:00
Nick Lewycky
a734aa84f3
typo
...
llvm-svn: 44262
2007-11-21 05:21:54 +00:00
Dale Johannesen
6293438d50
Fix compiler warning.
...
llvm-svn: 44261
2007-11-21 00:45:00 +00:00
Chuck Rose III
b1944d8afb
This change does a couple of things. First it gets the Visual Studio builds working.
...
I added the lexing files to the VStudio projects and removed the .l files from the
VStudio projects. There was a problem with use of strtoll in TGLexer.cpp and Chris
suggested switching to strtol, so that's included here.
Additionally, this checkin adds minimal x64 builds to the VStudio builds. Build issues
related to x64 in the windows specific files for DynamicLibrary.inc and Singals.inc
are worked around, but not ultimately solved. Binaries used to be stored in
...\win32\{Debug|Release}
but are now kept in
...\win32\bin\{win32|x64}\{Debug|Release}
intermediate files will continue to be stored in the individual project directories under
win32.
Some names will likely change in the future to reflect that the vstudio projects
are no longer 32-bit only, but I wanted to get things up and running today so kept away
from bigger restructuring.
llvm-svn: 44260
2007-11-21 00:37:56 +00:00
Dale Johannesen
3f01467781
File missing from previous patch.
...
llvm-svn: 44259
2007-11-20 23:25:17 +00:00
Dale Johannesen
8c3541787f
Fix .eh table linkage issues on Darwin. Some EH support
...
for Darwin PPC, but it's not fully working yet.
llvm-svn: 44258
2007-11-20 23:24:42 +00:00
Chris Lattner
7627a7d8f4
Add the ability to convert a tblgen type to a string.
...
llvm-svn: 44257
2007-11-20 22:25:16 +00:00
Duncan Sands
f69444f091
In order for parameter attribute uniquing to make
...
any sense it is important that ParamAttr::None gets
treated the same as not supplying an attribute at
all. Rather than stripping ParamAttr::None out of
the list of attributes, assert if ParamAttr::None
is seen. Fix up the bitcode reader which liked to
insert ParamAttr::None all over the place. Patch
based on one by Török Edwin.
llvm-svn: 44250
2007-11-20 14:09:29 +00:00
Nick Lewycky
bb69ad8a1b
Small cleanup. Use APInt::getHighBitsSet method instead of shift left.
...
"setcc" -> "icmp op" in comments. No functionality change.
llvm-svn: 44249
2007-11-20 08:44:50 +00:00
Nick Lewycky
f1d30ded71
Be more careful when transforming | to +. Patch from Wojciech Matyjewicz.
...
llvm-svn: 44248
2007-11-20 08:24:44 +00:00
Chris Lattner
7672c08059
Testcase for PR1811
...
llvm-svn: 44244
2007-11-19 21:43:22 +00:00
Chris Lattner
21c243d051
ExpandUnalignedLoad doesn't handle vectors right at all apparently.
...
Fix a couple of problems:
1. Don't assume the VT-1 is a VT that is half the size.
2. Treat vectors of FP in the vector path, not the FP path.
This has a couple of remaining problems before it will work with
the code in PR1811: the code below this change assumes that it can
use extload/shift/or to construct the result, which isn't right for
vectors.
This also doesn't handle vectors of 1 or vectors that aren't pow-2.
llvm-svn: 44243
2007-11-19 21:38:03 +00:00
Chris Lattner
c0f2f19744
Implement vector expand support for shuffle_vector. This fixes PR1811.
...
llvm-svn: 44242
2007-11-19 21:16:54 +00:00
Dan Gohman
27ac53cc23
Remove meaningless qualifiers from return types, avoiding compiler warnings.
...
llvm-svn: 44240
2007-11-19 20:46:23 +00:00
Chris Lattner
30a6eee34c
Implement splitting of UNDEF nodes. This is the first step towards fixing PR1811
...
llvm-svn: 44239
2007-11-19 20:21:32 +00:00
Owen Anderson
471ffbe011
Teach me to do stuff late at night.
...
llvm-svn: 44236
2007-11-19 16:10:59 +00:00
Dan Gohman
d460d8eab0
Fix a typo in a comment.
...
llvm-svn: 44235
2007-11-19 15:36:19 +00:00
Dan Gohman
760d574313
Add explicit keywords.
...
llvm-svn: 44234
2007-11-19 15:30:20 +00:00
Dan Gohman
0f62120b01
Add support in SplitVectorOp for remainder operators.
...
llvm-svn: 44233
2007-11-19 15:15:03 +00:00
Owen Anderson
e05d68940f
Fix a factually incorrect statement pointed out by Max Hailperin.
...
llvm-svn: 44228
2007-11-19 07:44:43 +00:00
Chris Lattner
4de076fe41
Record the start of the current token, for use in error reporting.
...
llvm-svn: 44227
2007-11-19 07:43:52 +00:00
Chris Lattner
b5d55431b7
Add carat diagnostics to tblgen lexer errors.
...
llvm-svn: 44226
2007-11-19 07:38:58 +00:00
Chris Lattner
56d872fcbb
Fix the Linker testcase regressions, by making MemoryBuffer::getFileOrSTDIN return
...
a valid but empty buffer if stdin is empty.
llvm-svn: 44219
2007-11-18 18:52:28 +00:00
Chris Lattner
7f2b9b27b3
autoupgrade files that use callfoo as call foo.
...
llvm-svn: 44218
2007-11-18 18:43:24 +00:00
Chris Lattner
cf741eccd6
print a call to a fastcc function as:
...
call x86_fastcallcc void @func( i32* %X, i64 0 )
not:
callx86_fastcallcc void @func( i32* %X, i64 0 )
This fixes Codegen/X86/fast-cc-merge-stack-adj.ll
llvm-svn: 44217
2007-11-18 18:32:16 +00:00
Chris Lattner
bef568f3f8
fix bogus test that the more strict lexer is finding.
...
llvm-svn: 44216
2007-11-18 18:26:45 +00:00
Chris Lattner
88f47f2798
Bugfix, this fixes CodeGen/X86/ldzero.ll and CodeGen/X86/2007-10-16-fp80_select.ll
...
llvm-svn: 44215
2007-11-18 18:25:18 +00:00
Chris Lattner
54284cf34a
Replace the original flex lexer with a hand writen one. This
...
drops a dependency on flex and lets us make future progress more
easily. Yay for 2 fewer .cvs files to make silly conflicts with.
llvm-svn: 44213
2007-11-18 08:46:26 +00:00
Chris Lattner
ea7765860d
minor cleanups
...
llvm-svn: 44212
2007-11-18 05:48:46 +00:00
Chris Lattner
a1d537ed5e
ensure header is self contained.
...
llvm-svn: 44211
2007-11-18 05:25:45 +00:00
Chris Lattner
07a4b4d5fe
reimplement the tblgen lexer with a simple hand-written lexer. This eliminates
...
one dependency on flex and gets rid of two ".cvs" files.
llvm-svn: 44210
2007-11-18 02:57:27 +00:00
Nate Begeman
2a8ef3f29a
Add support for vectors to int <-> float casts.
...
llvm-svn: 44204
2007-11-17 03:58:34 +00:00