Chris Lattner
20ec1654b1
Teach bugpoint to kill optimization passes that run over the timeout limit,
...
which allows it to debug optimizer infinite loops. This patch is contributed
by Nick Lewycky, thanks!
llvm-svn: 28763
2006-06-13 03:10:48 +00:00
Chris Lattner
d2d29a088e
Decribe the "implementation" keyword.
...
llvm-svn: 28762
2006-06-13 03:05:47 +00:00
Chris Lattner
ac59ab515a
Gaar! Don't use r11 for CR save/restore, use R0. R11 can be register
...
allocated, thus live across the save/reload. This fixes
llc-beta /MultiSource/Applications/spiff/spiff
llc-beta /MultiSource/Benchmarks/sim/sim:
llc-beta /MultiSource/Benchmarks/Ptrdist/bc/bc
llc-beta /MultiSource/Benchmarks/McCat/12-IOtest/iotest:
llc-beta /MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow
llc-beta /MultiSource/Benchmarks/Fhourstones-3.1/fhourstones3.1
llc-beta /MultiSource/Benchmarks/mediabench/adpcm/rawdaudio/rawdaudio
llc-beta /MultiSource/Benchmarks/mediabench/adpcm/rawcaudio/rawcaudio
llc-beta /MultiSource/Benchmarks/mediabench/g721/g721encode/encode
llc-beta /MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg
and probably others, with -regalloc=local.
llvm-svn: 28761
2006-06-12 23:59:16 +00:00
Chris Lattner
6b043a24a1
Fix spilling and reloading of CR regs to reload the right values. This fixes
...
Olden/power (and probably others) with -regalloc=local.
llvm-svn: 28760
2006-06-12 21:50:57 +00:00
Owen Anderson
fd0a3d6e5c
Reapply my 6/9 changes. The bug Evan saw no longer occurs.
...
llvm-svn: 28759
2006-06-12 21:49:21 +00:00
Chris Lattner
b5c9d7a0af
Fix an infinite loop on Transforms/SimplifyCFG/2006-06-12-InfLoop.ll
...
llvm-svn: 28758
2006-06-12 20:18:01 +00:00
Chris Lattner
9c4ddf8314
TEstcase that makes simplifycfg infloop.
...
llvm-svn: 28757
2006-06-12 20:17:44 +00:00
Chris Lattner
b3c62e43d1
Add a new -compileflags options, remove old externals location specifiers.
...
People should just use -with-externals.
llvm-svn: 28756
2006-06-12 19:03:17 +00:00
Chris Lattner
32d92e004d
Make sure to update the CFG correctly if a switch only has a default dest.
...
This fixes CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll
llvm-svn: 28755
2006-06-12 18:25:29 +00:00
Chris Lattner
eecff6c21f
New testcase that crashes llc
...
llvm-svn: 28754
2006-06-12 18:24:32 +00:00
Andrew Lenharth
80528499cf
Let the alpha breakage begin. First Formals and RET. next Calls
...
llvm-svn: 28753
2006-06-12 18:09:24 +00:00
Andrew Lenharth
0e57b2cb92
Start on my todo list
...
llvm-svn: 28752
2006-06-12 16:07:18 +00:00
Rafael Espindola
4e76015e0b
lower more then 4 formal arguments. The offset is currently hard coded.
...
implement SelectFrameIndex
llvm-svn: 28751
2006-06-12 12:28:08 +00:00
Owen Anderson
0ac336965e
Fix for 2006-06-26-MultipleExitsSingleBlock.
...
If a single exit block has multiple predecessors within the loop, it will
appear in the exit blocks list more than once. LCSSA needs to take that into
account so that it doesn't double process that exit block.
llvm-svn: 28750
2006-06-12 07:10:16 +00:00
Owen Anderson
ecb8036e60
Make sure that LCSSA works properly when it encounters an exit block that has
...
more than one predecessor inside the loop.
llvm-svn: 28749
2006-06-12 07:05:47 +00:00
Owen Anderson
b538f14d2a
Re-commit the safe parts of my 6/9 patch. Still working on fixing the unsafe parts.
...
llvm-svn: 28748
2006-06-11 19:22:28 +00:00
Evan Cheng
1b6e310e6f
Back out Owen's 6/9 changes. They broke MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others).
...
llvm-svn: 28747
2006-06-11 09:32:57 +00:00
Chris Lattner
bfd0b6d8e4
Add a missing assertion that would have helped out Reid
...
llvm-svn: 28746
2006-06-10 04:16:23 +00:00
Chris Lattner
b055c8737f
Work around a nasty tblgen bug where it doesn't add operands for varargs
...
nodes correctly.
llvm-svn: 28745
2006-06-10 01:15:02 +00:00
Chris Lattner
006b2c6ab9
Fix a problem exposed by the local allocator. CALL instructions are not marked
...
as using incoming argument registers, so the local allocator would clobber them
between their set and use. To fix this, we give the call instructions a variable
number of uses in the CALL MachineInstr itself, so live variables understands
the live ranges of these register arguments.
llvm-svn: 28744
2006-06-10 01:14:28 +00:00
Chris Lattner
deafba0325
Wrap to 80 cols
...
llvm-svn: 28743
2006-06-09 23:59:44 +00:00
Chris Lattner
572e78c2f9
After telling GCC to type of the input file with -x asm/-x c, switch back to
...
-x none, to not foul up autodetection of .a file or .dylibs.
llvm-svn: 28741
2006-06-09 21:31:53 +00:00
Evan Cheng
09cf82992b
Don't pull in environ, not always safe. Global variables are bad anyway.
...
Use execve when explicit environment variables ptr is available. Otherwise
just use execv.
llvm-svn: 28740
2006-06-09 20:43:11 +00:00
Owen Anderson
b1dc1d44f8
Add LCSSA as a requirement for LoopUnswitch, and assert that LoopUnswitch preserves
...
LCSSA.
llvm-svn: 28739
2006-06-09 18:40:32 +00:00
Owen Anderson
505adff3f0
Make Loop able to verify that it is in LCSSA-form, and have the LCSSA pass assert
...
on this.
llvm-svn: 28738
2006-06-09 18:33:30 +00:00
Evan Cheng
beedf824e3
Comments to appease sabre.
...
llvm-svn: 28737
2006-06-09 06:25:10 +00:00
Evan Cheng
0e14a56d35
Minor compilation speed improvement.
...
llvm-svn: 28736
2006-06-09 06:24:42 +00:00
Evan Cheng
398f70292c
RewriteExpr, either the new PHI node of induction variable or the
...
post-increment value, should be first cast to the appropriated type (to the
type of the common expr). Otherwise, the rewrite of a use based on (common +
iv) may end up with an incorrect type.
llvm-svn: 28735
2006-06-09 00:12:42 +00:00
Owen Anderson
5d029264ec
Update some comments, and expose LCSSAID in preparation for having other passes
...
require LCSSA.
llvm-svn: 28734
2006-06-08 20:02:53 +00:00
Chris Lattner
c03a9259c0
Fix X86/inline-asm.ll:test2, a case where an input value was implicitly
...
truncated.
llvm-svn: 28733
2006-06-08 18:27:11 +00:00
Chris Lattner
38b318d436
Add new testcase
...
llvm-svn: 28732
2006-06-08 18:26:48 +00:00
Chris Lattner
705948d742
Fix Regression/CodeGen/X86/inline-asm.ll, a case where inline asm causes
...
implement extension of a register.
llvm-svn: 28731
2006-06-08 18:22:48 +00:00
Chris Lattner
1b66dd690c
New testcase, using "AX" as i32.
...
llvm-svn: 28730
2006-06-08 18:20:13 +00:00
Reid Spencer
36bc2b00eb
Squelch a warning about signed/unsigned.
...
llvm-svn: 28729
2006-06-08 18:08:43 +00:00
Chris Lattner
ba1ed585ee
Add support for "m" inline asm constraints.
...
llvm-svn: 28728
2006-06-08 18:03:49 +00:00
Chris Lattner
8f8b5e4631
Fix an assert-on-inline-inline-asm bug.
...
llvm-svn: 28727
2006-06-08 18:00:47 +00:00
Reid Spencer
5e91c03fa9
For PR804:
...
Change the file size field of StatusInfo to be uint64_t instead of size_t
so that we know it is always 64 bits. This prevents some overflow on
systems where size_t is 32 bits when it ought to be 64.
llvm-svn: 28726
2006-06-08 17:00:08 +00:00
Vladimir Prus
9bc4009e9b
Remove dead code.
...
llvm-svn: 28725
2006-06-08 16:03:13 +00:00
Vladimir Prus
b5b6dc49e2
New method BasicBlock::getFirstNonPHI.
...
llvm-svn: 28724
2006-06-08 15:46:18 +00:00
Chris Lattner
c944417749
This no longer needs plugins, this it doesn't need all of VMCore.
...
llvm-svn: 28723
2006-06-08 00:25:44 +00:00
Reid Spencer
ab97f22ccc
For PR787:
...
Provide new llvm::sys::Program facilities for converting the stdout and
stdin to binary mode. There is no standard way to do this and the available
mechanisms are platform specific. Adjust the bytecode reader and writer to
use these methods when their input is stdin or output is stdout. THis avoids
the problem with \n writing CRLF to a bytecode file on windows.
Patch Contributed by Michael Smith.
llvm-svn: 28722
2006-06-07 23:18:34 +00:00
Reid Spencer
ed95105b45
Shorten a value description so --help out isn't so wide.
...
llvm-svn: 28721
2006-06-07 23:07:51 +00:00
Reid Spencer
c1588f624c
Make sure this tool links in all of libVMCore.a because it can --load
...
shared objects.
llvm-svn: 28720
2006-06-07 23:06:50 +00:00
Reid Spencer
5113dc5cfe
For PR780:
...
1. Add #includes to LinkAllVMCore.h to get Mangler.o and InlineAsm.o
2. Make Mangler.h and InlineAsm.h use the macros to ensure linkage
3. Make each of the tools with --load options include LinkAllVMCore.h
This should be the last set of changes for this bug and 800.
llvm-svn: 28719
2006-06-07 23:03:13 +00:00
Chris Lattner
5bd30fa310
Add a virtual dtor to the InlineAsm class so that the principle method of
...
the class can be defined in InlineAsm.cpp
llvm-svn: 28718
2006-06-07 22:47:44 +00:00
Chris Lattner
5ff8b962c8
Fix a bug where the types for inlineasm nodes were not properly entered into
...
the compaction table for a function. This broke compilation of hexxagon
on darwin/x86 with recent changes.
llvm-svn: 28717
2006-06-07 22:20:03 +00:00
Reid Spencer
fa80953280
Previous version of this file wasn't supposed to be committed. This version
...
attempts to get all of libVMCore.a through the least number of declarations.
llvm-svn: 28716
2006-06-07 22:09:38 +00:00
Reid Spencer
be535661cc
For PR780:
...
1. Fix the macros in IncludeFile.h to put everything in the llvm namespace
2. Replace the previous explicit mechanism in all the .h and .cpp files
with the macros in IncludeFile.h
This gets us a consistent mechanism throughout LLVM for ensuring linkage.
Next step is to make sure its used in enough places.
llvm-svn: 28715
2006-06-07 22:00:26 +00:00
Reid Spencer
d4b795902c
Fix a spello in a comment.
...
llvm-svn: 28714
2006-06-07 21:24:10 +00:00
Reid Spencer
1707fcb7db
For PR780:
...
This change was suggested by Chris so that we can select an alternate
(or even no-op) implementation of the link assurance. I'm committing this
for your review, Chris. If the names and definitions are okay, I'll adjust
all the .h and .cpp files in a later patch.
llvm-svn: 28712
2006-06-07 20:35:46 +00:00
Reid Spencer
54cb2d8533
For PR780:
...
Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.
llvm-svn: 28709
2006-06-07 20:00:19 +00:00
Evan Cheng
5fc4f3328f
Add -extraflags FLAGS to pass extra compilation options.
...
llvm-svn: 28707
2006-06-07 05:28:07 +00:00
Chris Lattner
3273056546
Remove useless noop argument
...
llvm-svn: 28706
2006-06-07 00:43:18 +00:00
Chris Lattner
64064c2157
Fix a bug in the following scenario.
...
1. llvm is built with objroot = OBJ and installed.
2. OBJ is deleted or install tree is shipped.
3. llvm-config is run.
In this scenario, llvm-config shouldn't emit an error message at #3 , it
should just know it's not running in the objdir :)
llvm-svn: 28704
2006-06-06 23:54:15 +00:00
Evan Cheng
dc614c193e
Added X86FunctionInfo subclass of MachineFunction to record whether the
...
function that is being lowered is forced to use FP. Currently this is only
true for main() / Cygwin.
llvm-svn: 28703
2006-06-06 23:30:24 +00:00
Chris Lattner
7f9dcde368
document --libfiles
...
llvm-svn: 28702
2006-06-06 22:39:59 +00:00
Chris Lattner
330d4d006a
Add a new --libfiles option, for getting fully-qualified pathnames to libraries.
...
This can be used for tools that want makefile rules to depend on the libraries
(e.g. so the tool is relinked when a library changes).
llvm-svn: 28701
2006-06-06 22:38:29 +00:00
Chris Lattner
d63b1b5a1f
Move toolrunner out of libsupport into the bugpoint tool
...
llvm-svn: 28700
2006-06-06 22:31:36 +00:00
Chris Lattner
ffac286737
Move ToolRunner.(cpp|h) into the bugpoint directory
...
llvm-svn: 28699
2006-06-06 22:30:59 +00:00
Chris Lattner
95cebb082f
Fix a bug in a recent patch. This fixes UnitTests/Vector/Altivec/casts.c on
...
PPC/altivec
llvm-svn: 28698
2006-06-06 22:26:02 +00:00
Chris Lattner
16826c3503
Now that PR633 is implemented, the CBE can know to emit _setjmp/_longjmp
...
when available. This speeds up hexxagon from 18.61s to 16.61s with the CBE on
PPC Mac OS (for reference, LLC is 15.48s and GCC is 23.35s).
llvm-svn: 28697
2006-06-06 21:45:47 +00:00
Chris Lattner
c8587d4b81
Add PowerPC intrinsics to support dcbz[l]
...
llvm-svn: 28696
2006-06-06 21:29:23 +00:00
Chris Lattner
54a417be00
Make the llvm-config library dependency database depend on all of the libraries.
...
llvm-svn: 28695
2006-06-06 17:43:03 +00:00
Owen Anderson
ac601b4c4b
Fix some formatting, and use inLoop() when appropriate.
...
llvm-svn: 28694
2006-06-06 04:36:36 +00:00
Owen Anderson
9e81c1bb03
Stop a memory leak, and update some comments.
...
llvm-svn: 28693
2006-06-06 04:28:30 +00:00
Reid Spencer
c3065b7d3f
Add the -Xlinker option to bugpoint which allows an option to be passed
...
through to gcc when its being used as a linker. This allows -L and -l
(and any other) options to be added so that non-complete bytecode files
can be processed with bugpoint. The -Xlinker option can be added as many
times as needed.
llvm-svn: 28692
2006-06-06 00:00:42 +00:00
Rafael Espindola
6306becc49
add R0 to liveout
...
expand "ret null" (implements test/Regression/CodeGen/ARM/ret_void.ll)
note that a Flag link is missing between the copy and the branch
llvm-svn: 28691
2006-06-05 22:26:14 +00:00
Reid Spencer
0075b2f5b0
Document the cl::SetVersionPrinter function.
...
llvm-svn: 28690
2006-06-05 17:30:16 +00:00
Reid Spencer
9017064cc7
For PR778:
...
Move file-scoped documentation to class-scoped so it is more readily
accessible.
llvm-svn: 28689
2006-06-05 16:29:06 +00:00
Reid Spencer
614cb2ff82
For PR798:
...
Provide GraphViz support for MingW32. Patch provided by Anton Korobeynikov
llvm-svn: 28688
2006-06-05 16:26:06 +00:00
Reid Spencer
b3171678ee
Make it possible to override the standard version printer. Not all tools
...
built with CommandLine.h will want the --version option to report that the
tool belongs to LLVM. To override simply pass a void func() to the
cl::SetVersionPrinter() function and that void func() will be called when
it is time to print the version information.
llvm-svn: 28687
2006-06-05 16:22:56 +00:00
Reid Spencer
a31ac4eae9
For PR633:
...
Add configure checks for setjmp/longjmp for Chris. I can't believe this easy
PR has been outstanding for so long. If I don't get to something, please
remind me! :)
llvm-svn: 28686
2006-06-05 16:11:07 +00:00
Reid Spencer
627023a491
Some enhancements for gv/graphviz/dot/dotty support and better handling of
...
paths under MingW.
llvm-svn: 28685
2006-06-05 15:54:38 +00:00
Reid Spencer
7c77323e1d
For PR798:
...
Add support for Graphviz. Patch contributed by Anton Korobeynikov.
llvm-svn: 28684
2006-06-05 15:44:46 +00:00
Evan Cheng
0f29df98a1
A few new entries.
...
llvm-svn: 28683
2006-06-04 09:08:00 +00:00
Evan Cheng
0de66677e7
Be consistent with gcc.
...
llvm-svn: 28682
2006-06-04 07:24:07 +00:00
Owen Anderson
9e69c67ebe
Update the regression tests, and add a new one encountered while compiling crtend.
...
llvm-svn: 28681
2006-06-04 00:56:30 +00:00
Owen Anderson
766f90b08e
Some more clean-up, and squash an IDF-Phi related bug.
...
llvm-svn: 28680
2006-06-04 00:55:19 +00:00
Andrew Lenharth
b47461350c
ignore ordered/unordered for now
...
llvm-svn: 28679
2006-06-04 00:25:51 +00:00
Owen Anderson
eb33815f1b
Various clean-ups suggested by Chris.
...
llvm-svn: 28678
2006-06-04 00:02:23 +00:00
Owen Anderson
d00eacc4f9
Fix a bug in Phi-noded insertion. Also, update some comments to reflect what's
...
actually going on.
llvm-svn: 28677
2006-06-03 23:22:50 +00:00
Reid Spencer
b9303d6b61
Document the LINK_LIBS_IN_SHARED control variable.
...
llvm-svn: 28676
2006-06-03 18:55:33 +00:00
Chris Lattner
78e03500ed
temporarily add back this option, I will remove it in a couple days
...
llvm-svn: 28675
2006-06-02 23:43:27 +00:00
Reid Spencer
432b315843
For PR798:
...
Have configure find the "dotty" program and adjust configuration.
llvm-svn: 28674
2006-06-02 23:13:18 +00:00
Chris Lattner
2ad80c2d17
More of PR728, don't install utils either.
...
llvm-svn: 28673
2006-06-02 22:41:18 +00:00
Evan Cheng
e8a42360c5
Cygwin support. Patch by Anton Korobeynikov!
...
llvm-svn: 28672
2006-06-02 22:38:37 +00:00
Chris Lattner
f566821f36
Part of PR728, don't install examples or projects.
...
llvm-svn: 28671
2006-06-02 22:34:39 +00:00
Chris Lattner
e2e2492d8a
Fix a -pedantic warning
...
llvm-svn: 28670
2006-06-02 22:11:06 +00:00
Chris Lattner
dfa9b5aa68
Add flags to get access to build_mode, objdir, srcdir etc.
...
If installed, ignore the prefix the tree is configured with: always use the
prefix that llvm-config is currently at, which may be different if the tree
was moved.
llvm-svn: 28669
2006-06-02 22:03:50 +00:00
Chris Lattner
c04e4c13cc
Make llvm-config "do the right thing" when an install tree is relocated or
...
when run out of a build directory.
llvm-svn: 28668
2006-06-02 21:48:10 +00:00
Evan Cheng
a2efb9f3ec
Use xor to clear a register.
...
llvm-svn: 28667
2006-06-02 21:20:34 +00:00
Evan Cheng
7ae8632cb4
Incorrect AT&T opcode.
...
llvm-svn: 28666
2006-06-02 21:09:10 +00:00
Chris Lattner
753a92bdb7
Capture the build mode (e.g. Debug/Release) in the llvm-config script.
...
llvm-svn: 28665
2006-06-02 19:13:29 +00:00
Chris Lattner
540886f0ae
Remove unneeded hook. Patch by Anton K. Thanks!
...
llvm-svn: 28664
2006-06-02 19:11:46 +00:00
Chris Lattner
076f7336d4
Convert to standard file header
...
llvm-svn: 28663
2006-06-02 18:58:21 +00:00
Chris Lattner
0c32b9666d
Remove a couple of things no longer figured out by autoconf
...
llvm-svn: 28662
2006-06-02 18:55:36 +00:00
Chris Lattner
8fd1036612
Add mingw support, patch contributed by Anton
...
llvm-svn: 28661
2006-06-02 18:54:01 +00:00
Chris Lattner
02e0b4ddb7
Force anything that #includes llvm/Transforms/Utils/UnifyFunctionExitNodes.h
...
to link in the implementation. Thanks to Anton Korobeynikov for figuring out
what was going on here.
llvm-svn: 28660
2006-06-02 18:40:06 +00:00
Reid Spencer
ecdecdb2ee
Add several more autoconf variables so that new features can be implemented
...
by our illustrious project leader.
llvm-svn: 28659
2006-06-02 18:31:41 +00:00
Chris Lattner
d1fe870e08
Fix build on systems with broken bison
...
llvm-svn: 28658
2006-06-02 18:21:11 +00:00
Chris Lattner
f42ccafe00
Fix build on systems with bad bison's
...
llvm-svn: 28657
2006-06-02 18:20:28 +00:00
Chris Lattner
5d112311ce
Add tblgen to the index
...
llvm-svn: 28656
2006-06-02 17:43:38 +00:00
Chris Lattner
a470694dc1
tblgen isn't related to llvm2cpp. Fix typo
...
llvm-svn: 28655
2006-06-02 17:41:19 +00:00
Chris Lattner
40c5cf2d75
Add a gross "--use-current-dir-as-prefix" option as a temporary workaround
...
for the "build with one prefix and move the installed files to another dir"
problem.
llvm-svn: 28654
2006-06-02 01:23:18 +00:00
Chris Lattner
c3e42bb0cf
Remove some variables from the configured section that aren't.
...
llvm-svn: 28653
2006-06-02 01:04:35 +00:00
Chris Lattner
2f9bea15f0
Remove more "alpha is archive" stuff.
...
llvm-svn: 28652
2006-06-02 00:56:15 +00:00
Reid Spencer
54e7880bf0
Remove some flags backed out from earlier attempts at getting MING32W
...
configuration settled down.
llvm-svn: 28651
2006-06-02 00:40:35 +00:00
Reid Spencer
aa1b11cdc3
Suppress -pedantic warnings about print("%a")
...
llvm-svn: 28650
2006-06-02 00:39:08 +00:00
Chris Lattner
323906e028
Remove obsolete CORE_IS_ARCHIVE support
...
llvm-svn: 28649
2006-06-02 00:30:31 +00:00
Chris Lattner
4d1eeb48e0
Remove obsolete CORE_IS_ARCHIVE stuff.
...
llvm-svn: 28648
2006-06-02 00:27:42 +00:00
Chris Lattner
194819bd90
Update the ignore file
...
llvm-svn: 28647
2006-06-02 00:23:15 +00:00
Reid Spencer
e53b4ca089
Document the -gen-inline option.
...
llvm-svn: 28646
2006-06-01 23:46:30 +00:00
Reid Spencer
b83051a28f
Teach CppWriter how to emit an inline (partial) function.
...
llvm-svn: 28645
2006-06-01 23:43:47 +00:00
Rafael Espindola
a124c91242
added some tests for argument passing
...
llvm-svn: 28644
2006-06-01 22:01:25 +00:00
Chris Lattner
3f1c2c0e66
testcase for the recent inliner improvement.
...
llvm-svn: 28643
2006-06-01 21:54:58 +00:00
Chris Lattner
cdf2b1fc30
Remove dead #include
...
llvm-svn: 28642
2006-06-01 20:02:28 +00:00
Chris Lattner
cc340c02a4
Make the "pruning cloner" smarter. As it propagates constants through the
...
code (while cloning) it often gets the branch/switch instructions. Since it
knows that edges of the CFG are dead, it need not clone (or even look) at
the obviously dead blocks. This should speed up the inliner substantially on
code where there are lots of inlinable calls to functions with constant
arguments. On C++ code in particular, this kicks in.
llvm-svn: 28641
2006-06-01 19:19:23 +00:00
Chris Lattner
c774592641
Fix linking of inline asm objects.
...
llvm-svn: 28640
2006-06-01 19:14:22 +00:00
Reid Spencer
187b4adcfe
Provide configuration support and usage for MINGW32 platform
...
llvm-svn: 28639
2006-06-01 19:03:21 +00:00
Reid Spencer
5cb722f320
Don't build tblgen with -pedantic or -Wno-long-long
...
llvm-svn: 28638
2006-06-01 18:20:23 +00:00
Reid Spencer
8273cdb754
Make sure windows.h is #included first.
...
llvm-svn: 28637
2006-06-01 17:44:29 +00:00
Chris Lattner
71819be586
Fix -pedantic warnings.
...
llvm-svn: 28636
2006-06-01 17:29:22 +00:00
Chris Lattner
e1ade0a523
Fix -pedantic warnings
...
llvm-svn: 28635
2006-06-01 17:27:11 +00:00
Chris Lattner
20a4da4dfd
Fix -pedantic warning
...
llvm-svn: 28634
2006-06-01 17:17:46 +00:00
Chris Lattner
4442a70b3a
Silence -pedantic warning
...
llvm-svn: 28633
2006-06-01 17:17:06 +00:00
Chris Lattner
f905a7b994
Silence a -pedantic warning.
...
llvm-svn: 28632
2006-06-01 17:16:21 +00:00
Reid Spencer
e62348f401
Make sure that when checking for MINGW32 libraries we ask for windows.h
...
llvm-svn: 28631
2006-06-01 17:16:20 +00:00
Chris Lattner
b47b8a9fad
Silence -pedantic warning.
...
llvm-svn: 28630
2006-06-01 17:13:10 +00:00
Chris Lattner
dcd73534df
Silence some -pedantic warnings.
...
llvm-svn: 28629
2006-06-01 17:12:14 +00:00
Reid Spencer
a16b986df5
Provide support for detecting if the Win32 imaghlp and psapi libraries
...
are available. These libraries are used in lib/System and should be
included on the link line or if not available generate an error when
building lib/System.
llvm-svn: 28628
2006-06-01 16:55:59 +00:00
Chris Lattner
409527937a
Fix a typo
...
llvm-svn: 28627
2006-06-01 16:48:56 +00:00
Reid Spencer
9c226205e2
Make a shorthand target for running the llvm2cpp test suite. This test
...
suite is disabled by default because of the length of time it takes to
run. To enable it certain command line fu must be used. This patch just
encodes the command line fu as the magical "check-llvm2cpp" target.
llvm-svn: 28626
2006-06-01 07:27:53 +00:00
Reid Spencer
3364e527bc
Restore default arguments for llvm2cpp back to health by declaring an
...
emitted variable to actually have a type (picky, picky, picky!)
llvm-svn: 28625
2006-06-01 07:24:29 +00:00
Reid Spencer
569f3913a9
No, libLLVMbzip2 does not have a .a suffix.
...
llvm-svn: 28624
2006-06-01 07:23:32 +00:00
Reid Spencer
d661a4c218
Fix gcc command line options after LLVMCore and LLVMbzip2 became archive
...
libraries.
llvm-svn: 28623
2006-06-01 07:19:28 +00:00
Reid Spencer
f69d4c8f3b
Favor C++ casts over C casts in C++ code.
...
llvm-svn: 28622
2006-06-01 07:03:53 +00:00
Reid Spencer
5861659a1e
Change from using a stub function to a stub variable for passing to the
...
IncludeFile hack to ensure linkage of analysis passes. This works around
some -pedantic warnings about assigning an object to a function.
llvm-svn: 28621
2006-06-01 07:02:51 +00:00
Reid Spencer
cd8f67a106
Prevent the -pedantic option from causing Mac OS/X build problems:
...
LiveIntervalAnalysis.cpp:218: error: floating constant exceeds range of 'double'
llvm-svn: 28620
2006-06-01 06:12:21 +00:00
Owen Anderson
619e4ba57f
Remove a FIXME that was fixed with my last patch.
...
llvm-svn: 28619
2006-06-01 06:07:40 +00:00
Owen Anderson
cd76fa04a1
More cleanups. Also, add a special case for updating PHI nodes, and
...
reimplement getValueDominatingFunction to walk the DominanceTree rather than
just searching blindly.
llvm-svn: 28618
2006-06-01 06:05:47 +00:00
Evan Cheng
2b2c1be49c
Typos
...
llvm-svn: 28617
2006-06-01 05:53:27 +00:00
Reid Spencer
75f29be136
For PR786:
...
Don't warn about -pedantic errors. Add a note to the PR instead.
llvm-svn: 28616
2006-06-01 05:49:51 +00:00
Reid Spencer
83f6d05c08
Fix a bug where incorrect C++ was being emitted.
...
llvm-svn: 28615
2006-06-01 04:21:20 +00:00
Reid Spencer
a62f097c96
For PR786:
...
Turn -pedantic and -Wno-long-long compile flags on by default. In a few
places, avoid the warnings by removing these options in the local makefile.
One notable exception: lib/Target/CBackend/Writer.cpp. These warnings are
left on as a reminder to developers to clean them up.
llvm-svn: 28614
2006-06-01 01:55:21 +00:00
Reid Spencer
08f1030658
Build llvm-config into the ToolDir not in the local directory. This makes
...
it more likely to be in a developer's path and consistent with all the
other tools.
llvm-svn: 28613
2006-06-01 01:52:49 +00:00
Reid Spencer
54d1f85b19
Put an innocuous statement in this file to quelch warnings about compiling
...
an empty file.
llvm-svn: 28612
2006-06-01 01:49:08 +00:00
Reid Spencer
7fa8f334bf
Oops, llc needs libTarget.a not Target.o
...
llvm-svn: 28611
2006-06-01 01:42:33 +00:00
Reid Spencer
a647c7ff42
Use archive libraries instead of object files for VMCore, BCReader,
...
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.
llvm-svn: 28610
2006-06-01 01:30:27 +00:00
Reid Spencer
6c8368beea
Support correct build:
...
1. Capture the ENABLE_THREADS configure variable in Makefile.config
2. Use ENABLE_THREADS to avoid building ParallelJIT if threads are not
present.
llvm-svn: 28609
2006-06-01 01:09:43 +00:00
Reid Spencer
f659e70041
Tighten this script up a bit.
...
llvm-svn: 28608
2006-06-01 01:08:28 +00:00
Evan Cheng
2489ccdd90
Remove a warning
...
llvm-svn: 28607
2006-06-01 00:30:39 +00:00
Evan Cheng
cfaffdd335
Rename ASM modifier trunc8, trunc16 to subreg8, subreg16.
...
llvm-svn: 28606
2006-05-31 22:34:26 +00:00
Reid Spencer
ff82596981
Fix casting so there's no warning on Alpha.
...
llvm-svn: 28605
2006-05-31 22:26:11 +00:00
Owen Anderson
fe44aedf8a
Add my most recent work.
...
llvm-svn: 28604
2006-05-31 22:15:45 +00:00
Evan Cheng
cf70c7f42d
Sign extender
...
llvm-svn: 28603
2006-05-31 22:05:11 +00:00
Reid Spencer
d8df61a4d0
Squelch this warning:
...
/bzlib.c:126: warning: string length `1056' is greater than the length `509' ISO
C89 compilers are required to support
llvm-svn: 28602
2006-05-31 21:53:42 +00:00
Chris Lattner
9b32cf59e0
Fix utostr once and for all, by making there only be one function named
...
utostr. To keep the efficiency in the 32-bit case, make it check to see if
the value is 32-bits and if so switch over to the faster 32-bit case.
llvm-svn: 28601
2006-05-31 21:25:50 +00:00
Chris Lattner
1df0e98ac2
Swap the order of operands created here. For +&|^, the order doesn't matter,
...
but for sub, it really does! Fix fixes a miscompilation of fibheap_cut in
llvmgcc4.
llvm-svn: 28600
2006-05-31 21:14:00 +00:00
Owen Anderson
dad8c57340
Extract a huge loop into a helper method. Fix a few iterator-invalidation bugs.
...
llvm-svn: 28599
2006-05-31 20:55:06 +00:00
Andrew Lenharth
440dcd03fa
4 billion names is enough for anyone. And really fix the build on alpha this time
...
llvm-svn: 28598
2006-05-31 20:40:36 +00:00
Andrew Lenharth
53250e7fcb
fix utostr
...
llvm-svn: 28597
2006-05-31 20:18:56 +00:00
Andrew Lenharth
0d4c10eae6
Fix build breakage on alpha, without causing it on x86. as a bonus, all platforms can invent the same number of unique names now
...
llvm-svn: 28596
2006-05-31 20:18:28 +00:00
Andrew Lenharth
40d4af63f2
revert for now
...
llvm-svn: 28595
2006-05-31 19:16:26 +00:00
Evan Cheng
25e44e008d
Rename instructions for consistency sake.
...
llvm-svn: 28594
2006-05-31 19:00:07 +00:00
Andrew Lenharth
26baab1593
make 64-bit safe and fix the build on alpha
...
llvm-svn: 28593
2006-05-31 18:56:42 +00:00
Evan Cheng
0c0996a97b
commuteInstruction() does not always create a new MI!
...
llvm-svn: 28592
2006-05-31 18:03:39 +00:00
Reid Spencer
5dd0111188
Add a brief description for the tblgen program. More detail is needed but
...
the current author is not the person to provide it. Now that the file
exists, perhaps others will chime in and embellish.
llvm-svn: 28591
2006-05-31 17:54:39 +00:00
Reid Spencer
a9355fa5d8
Update the documentation for llvm2cpp after the -gen-* options were added.
...
llvm-svn: 28590
2006-05-31 17:32:21 +00:00
Reid Spencer
de2daad0ac
Major reorganization and extension of the code. The diff on this will be a
...
mess as functions were moved around into a better ordering. The code was
extended to provide various -gen-* options to better control what the
generated output should be. Currently it is possible to generate entire
modules (three different ways), functions, global variables, and types.
llvm-svn: 28589
2006-05-31 17:31:38 +00:00
Reid Spencer
9fef163d19
Make the getNamedFunction and getNamedGlobal methods be const. They don't
...
change the module in any way and we should enforce that.
llvm-svn: 28588
2006-05-31 16:40:28 +00:00
Vladimir Prus
735e3f76a8
Clarify type naming.
...
llvm-svn: 28587
2006-05-31 16:03:20 +00:00
Vladimir Prus
c1eae29b91
Improve InstVisitor docs.
...
llvm-svn: 28586
2006-05-31 15:30:18 +00:00
Evan Cheng
9d91caa053
Eliminate a memory leak.
...
llvm-svn: 28585
2006-05-31 07:13:03 +00:00
Evan Cheng
64d2846017
visitVBinOp: Can't fold divide by zero!
...
llvm-svn: 28584
2006-05-31 06:08:35 +00:00
Reid Spencer
03977ec9b1
Don't generate module definitions when the -fragment option is given.
...
llvm-svn: 28583
2006-05-31 04:43:19 +00:00
Evan Cheng
8abf45e22d
Select vector_shuffle v1, undef <2, 3, ?, ?> to MOVHLPS.
...
llvm-svn: 28582
2006-05-31 00:51:37 +00:00
Evan Cheng
550cb663e8
Remove dead code.
...
llvm-svn: 28581
2006-05-31 00:50:42 +00:00
Evan Cheng
6821bbb1ea
Update vector extract test cases.
...
llvm-svn: 28580
2006-05-31 00:48:09 +00:00
Evan Cheng
ddced95d8f
A new entry
...
llvm-svn: 28579
2006-05-30 23:56:31 +00:00
Evan Cheng
57399704b3
MAXP{D|S} and MINP{D|S} are commutable.
...
llvm-svn: 28578
2006-05-30 23:47:30 +00:00
Evan Cheng
c0f90bef47
Commute shufps / shufpd.
...
llvm-svn: 28577
2006-05-30 23:34:30 +00:00
Reid Spencer
b5ddb66ce0
1. No need to thwart this test with an environment variable. Turning it off
...
is the default and handled by the makefile system and runtest
2. Redirect stderr of llvm-as and llvm2cpp so that warning messages about
instrinsics don't cause Tcl to report the run as failed.
llvm-svn: 28576
2006-05-30 23:07:17 +00:00
Evan Cheng
f21045a5cd
Somehow I lost a condition when I was shuffling some code around. Anyway,
...
only transform a shufps to pshufd when the first two operands are the same.
llvm-svn: 28575
2006-05-30 22:13:36 +00:00
Evan Cheng
c8c172eaae
Fix a build breaker.
...
llvm-svn: 28574
2006-05-30 21:45:53 +00:00
Evan Cheng
a4fc5b8699
Oops. PSHUFD is only available with SSE2.
...
llvm-svn: 28573
2006-05-30 21:30:59 +00:00
Chris Lattner
a5d4587296
Add a note
...
llvm-svn: 28572
2006-05-30 21:29:15 +00:00
Chris Lattner
b9342afa56
Always reserve space for 8 spilled GPRs. GCC apparently assumes that this
...
space will be available, even if the callee isn't varargs.
llvm-svn: 28571
2006-05-30 21:21:04 +00:00
Reid Spencer
c3b9370754
llvm2cpp is ready to be compiled so add it to the makefile, but make it
...
optional.
llvm-svn: 28570
2006-05-30 21:20:55 +00:00
Reid Spencer
ad7da68343
Add the new command line arguments.
...
llvm-svn: 28569
2006-05-30 21:19:29 +00:00
Reid Spencer
30945ca559
Fix more bugs. This version now passes all of the Feature test except for
...
a floating point conversion problem with NAN in intrinsics.ll. llvm2cpp
makes an attempt to provide the correct conversion, based on the
implementation in the CBackend writer, but it doesn't get NAN correct.
llvm-svn: 28568
2006-05-30 21:18:23 +00:00
Evan Cheng
baace007a3
Added a test case for parameter passing of vector values.
...
llvm-svn: 28567
2006-05-30 20:37:00 +00:00
Evan Cheng
1ec0e4233e
Fix the test failure on non-Darwin targets.
...
llvm-svn: 28566
2006-05-30 20:35:46 +00:00
Evan Cheng
66f849bd7b
Allow shufps x, x, mask to be converted to pshufd x, mask to save a move.
...
llvm-svn: 28565
2006-05-30 20:26:50 +00:00
Evan Cheng
b33e54ead7
Remove bogus comment.
...
llvm-svn: 28564
2006-05-30 20:24:48 +00:00
Reid Spencer
f9aa688f5b
Add llvm2cpp program.
...
llvm-svn: 28563
2006-05-30 19:56:31 +00:00
Reid Spencer
82ebabafde
Provide a simpler interface for getting a ConstantArray from a character
...
string. Instead of specifying the length, just specify whether the user
wants a terminating null or not. The default is "true" to retain the same
behavior as previously provided by this function.
llvm-svn: 28562
2006-05-30 18:15:07 +00:00
Evan Cheng
d12c97d23a
Make sure the register pressure reduction schedulers work for non-uniform
...
latency targets, e.g. PPC32.
llvm-svn: 28561
2006-05-30 18:05:39 +00:00
Evan Cheng
61e9f0d680
When a priority_queue is empty, the behavior of top() operator is
...
non-deterministic. Returns NULL when it's empty!
llvm-svn: 28560
2006-05-30 18:04:34 +00:00
Rafael Espindola
5bc60da112
Expand ret into "CopyToReg;BRIND"
...
llvm-svn: 28559
2006-05-30 17:33:19 +00:00
Chris Lattner
11c25cfa13
Enable -fno-use-cxa-atexit on darwin/ppc also.
...
llvm-svn: 28558
2006-05-30 16:38:06 +00:00
Reid Spencer
b0cffafb59
Undo a patch that breaks llvm-as because the warning message is written to
...
stdout when the output of llvm-as is also written to stdout. We'll have to
fix tcl some other way.
llvm-svn: 28557
2006-05-30 16:34:59 +00:00
Reid Spencer
b5c64fc3b6
Write the WARNING message to cout instead of cerr. Writing to cerr causes
...
Tcl to claim that the program had an error and thus produces errors in
the dejagnu testing when its really just a warning.
llvm-svn: 28556
2006-05-30 16:05:59 +00:00
Vladimir Prus
413441b9c9
Make doc comment visible in doxygen output. Clarify Type construction.
...
llvm-svn: 28555
2006-05-30 15:49:30 +00:00
Reid Spencer
37cf1765ed
Fix many small bugs in llvm2cpp. This patch gets llvm2cpp working with
...
everything except PHI nodes and one odd recurse/opaque type situation.
PHI nodes forward reference INSTRUCTIONS (aaaaaaaahhhhhhh!) :)
llvm-svn: 28554
2006-05-30 10:21:41 +00:00
Reid Spencer
84504f215b
Properly document the second form of ConstArray::get()
...
llvm-svn: 28553
2006-05-30 08:26:13 +00:00
Reid Spencer
6f61453ff8
Adjust the interface to ConstantArray::get. The previous
...
implementation always added a null byte to the end of the string. It turns
out that this is not always wanted. By adding a length parameter we preserve
this behavior when length==0 (default value) but also allow other lengths
(not null terminated) to be created.
llvm-svn: 28552
2006-05-30 08:23:18 +00:00
Evan Cheng
02420144ab
Add a note about integer multiplication by constants.
...
llvm-svn: 28551
2006-05-30 07:37:37 +00:00
Evan Cheng
734e1e241b
A addressing mode folding enhancement:
...
Fold c2 in (x << c1) | c2 where (c2 < c1)
e.g.
int test(int x) {
return (x << 3) + 7;
}
This can be codegen'd as:
leal 7(,%eax,8), %eax
llvm-svn: 28550
2006-05-30 06:59:36 +00:00
Evan Cheng
905e88caaa
Add a lea instruction selection test case.
...
llvm-svn: 28549
2006-05-30 06:53:55 +00:00
Evan Cheng
749138582e
Some new entries about truncate / anyext
...
llvm-svn: 28548
2006-05-30 06:23:50 +00:00
Reid Spencer
c267698f23
First complete version of llvm2cpp that doesn't crash on any of the Feature
...
tests. The output in a few cases still doesn't compile, however.
llvm-svn: 28547
2006-05-30 03:43:49 +00:00
Andrew Lenharth
c3cff44880
move calltarget to dsa
...
llvm-svn: 28546
2006-05-29 23:39:48 +00:00
Andrew Lenharth
e465381401
Since there was interest on the mailing list, this is a utility pass that
...
uses DSA to make find targets of calls. It provides a very convinient
interface to DSA results to do things with indirect calls, such as
write a devirtualizer (which I have and may commit one of these days).
llvm-svn: 28545
2006-05-29 22:58:38 +00:00
Chris Lattner
d65928994a
Silly cleanup
...
llvm-svn: 28544
2006-05-29 18:52:52 +00:00
Chris Lattner
dc0b3afcdd
silly cleanup
...
llvm-svn: 28543
2006-05-29 18:52:05 +00:00
Reid Spencer
131ca2869c
Fix a bug with diffing the wrong files. Make output more readable.
...
llvm-svn: 28542
2006-05-29 18:09:38 +00:00
Reid Spencer
c194e7e843
Next batch of implementation:
...
1. Get rid of old AsmWriter cruft that's not needed.
2. Implement several instructions. Enough to get by globalvars.ll and
alignment.ll in the Feature test suite.
3. Handle constants properly (don't repeat definitions).
4. Make the output compatible with llvm-dis for diff purposes.
llvm-svn: 28541
2006-05-29 18:08:06 +00:00
Reid Spencer
4967fa722d
Fix file header comment.
...
llvm-svn: 28540
2006-05-29 18:06:28 +00:00
Reid Spencer
fe361813aa
Remove temporary testing rules.
...
llvm-svn: 28539
2006-05-29 18:05:59 +00:00
Vladimir Prus
5150b763ce
Reset DEBUG_SYMBOL_TABLE back to 0.
...
llvm-svn: 28538
2006-05-29 12:54:52 +00:00
Vladimir Prus
f10bbd052d
Fix compile error when DEBUG_SYMBOL_TABLE is defined.
...
llvm-svn: 28537
2006-05-29 12:45:15 +00:00
Reid Spencer
84f1a3e639
Fix two bugs in the CppWriter.cpp:
...
1. Return the module from the MakeModule function so it can be verified.
2. Make sure types get generated with their names
llvm-svn: 28536
2006-05-29 02:58:15 +00:00
Reid Spencer
7af13d73f7
Fix the file's comment block.
...
llvm-svn: 28535
2006-05-29 02:35:29 +00:00
Reid Spencer
edcf47ea45
Fix grammar in a comment.
...
llvm-svn: 28534
2006-05-29 02:34:34 +00:00
Reid Spencer
5531640f4b
Replace an old C-style cast with a C++ cast (squelch warning)
...
llvm-svn: 28533
2006-05-29 02:32:43 +00:00
Reid Spencer
d078a1fd4c
Correct some grammar and describe current reality.
...
llvm-svn: 28532
2006-05-29 02:31:47 +00:00
Owen Anderson
a03aa6f37f
Require both tests to pass.
...
llvm-svn: 28531
2006-05-29 01:28:16 +00:00
Owen Anderson
c01e7bde40
Update the testcase to check the full extent of LCSSA.
...
llvm-svn: 28530
2006-05-29 01:07:04 +00:00
Owen Anderson
8a8f278f15
Add Use replacement. Assuming there is nothing horribly wrong with this, LCSSA
...
is now theoretically feature-complete. It has not, however, been thoroughly
test, and is still considered experimental.
llvm-svn: 28529
2006-05-29 01:00:00 +00:00
Reid Spencer
58d5dce11d
Initial Commit of llvm2cpp
...
This is a safekeeping commit. The program is not finished. It currently
handles modules, types, global variables and function declarations. Blocks
and instructions remain to be done.
llvm-svn: 28528
2006-05-29 00:57:22 +00:00
Owen Anderson
152d063ccb
Major think-o. Iterate over all live out-of-loop values, and perform the
...
other calculations on each individually, rather than trying to delay it and do
them all at the end.
llvm-svn: 28527
2006-05-28 19:33:28 +00:00
Reid Spencer
497120ef63
Fix a problem where dejagnu won't accept the value of global tcl variable
...
"libdir" for some reason. Changing to llvmlibsdir instead fixes it.
llvm-svn: 28526
2006-05-28 07:22:42 +00:00
Reid Spencer
633301acea
Provide an infrastructure for testing the llvm2cpp program (yet to be
...
committed). This infrastructure is only activated when RUNLLVM2CPP=1 is
specified on the make command line. Currently it is only supported in the
Feature test suite.
llvm-svn: 28525
2006-05-28 04:21:40 +00:00
Owen Anderson
1310e42803
Make LCSSA insert proper Phi nodes throughout the rest of the CFG by computing
...
the iterated Dominance Frontier of the loop-closure Phi's. This is the
second phase of the LCSSA pass. The third phase (coming soon) will be to
update all uses of loop variables to use the loop-closure Phi's instead.
llvm-svn: 28524
2006-05-27 18:47:11 +00:00
Chris Lattner
67c424e010
Fix some regression from the inliner patch I committed last night. This fixes
...
ldecod, lencod, and SPASS.
llvm-svn: 28523
2006-05-27 17:28:13 +00:00
Chris Lattner
6b852931a0
Fix pastos in comments
...
llvm-svn: 28522
2006-05-27 06:57:55 +00:00
Chris Lattner
be853d77e9
Switch the inliner over to using CloneAndPruneFunctionInto. This effectively
...
makes it so that it constant folds instructions on the fly. This is good
for several reasons:
0. Many instructions are constant foldable after inlining, particularly if
inlining a call with constant arguments.
1. Without this, the inliner has to allocate memory for all of the instructions
that can be constant folded, then a subsequent pass has to delete them. This
gets the job done without this extra work.
2. This makes the inliner *pass* a bit more aggressive: in particular, it
partially solves a phase order issue where the inliner would inline lots
of code that folds away to nothing, but think that the resultant function
is big because of this code that will be gone. Now the code never exists.
This is the first part of a 2-step process. The second part will be smart
enough to see when this implicit constant folding propagates a constant into
a branch or switch instruction, making CFG edges dead.
This implements Transforms/Inline/inline_constprop.ll
llvm-svn: 28521
2006-05-27 01:28:04 +00:00
Chris Lattner
64d8692dee
Ignore generated files
...
llvm-svn: 28520
2006-05-27 01:23:30 +00:00
Chris Lattner
3df13f4f22
Implement a new method, CloneAndPruneFunctionInto, as documented.
...
llvm-svn: 28519
2006-05-27 01:22:24 +00:00
Chris Lattner
53e97ebd2c
Implement a new method: CloneAndPruneFunctionInto, as documented.
...
llvm-svn: 28518
2006-05-27 01:21:50 +00:00
Chris Lattner
bc3c879fcf
Refactor some code to expose an interface to constant fold and instruction given it's opcode, typeand operands.
...
llvm-svn: 28517
2006-05-27 01:18:04 +00:00
Chris Lattner
00bb5f8248
Add an interface to constant fold and instruction given it's opcode, type
...
and operands.
llvm-svn: 28516
2006-05-27 01:17:40 +00:00
Chris Lattner
1a2a101359
New testcase: check that the inliner constant folds instructions on the
...
fly if it can.
llvm-svn: 28515
2006-05-27 01:16:22 +00:00
Chris Lattner
8f872d2091
Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!):
...
SimplifySelectOps would eliminate a Select, delete it, then return true.
The clients would see that it did something and return null.
The top level would see a null return, and decide that nothing happened,
proceeding to process the node in other ways: boom.
The fix is simple: clients of SimplifySelectOps should return the select
node itself.
In order to catch really obnoxious boogs like this in the future, add an
assert that nodes are not deleted. We do this by checking for a sentry node
type that the SDNode dtor sets when a node is destroyed.
llvm-svn: 28514
2006-05-27 00:43:02 +00:00
Chris Lattner
608290c299
Add a new sentry node type, allowing assertions to catch trivial
...
use-after-deleted errors.
llvm-svn: 28513
2006-05-27 00:40:15 +00:00
Owen Anderson
b4e16996f1
A few small clean-ups, and the addition of an LCSSA statistic.
...
llvm-svn: 28512
2006-05-27 00:31:37 +00:00
Evan Cheng
21dee4e0b2
Make CALL node consistent with RET node. Signness of value has type MVT::i32
...
instead of MVT::i1. Either is fine except MVT::i32 is probably a legal type
for most (if not all) platforms while MVT::i1 is not.
llvm-svn: 28511
2006-05-26 23:13:20 +00:00
Evan Cheng
a3add0fea8
Change RET node to include signness information of the return values. i.e.
...
RET chain, value1, sign1, value2, sign2, ...
llvm-svn: 28510
2006-05-26 23:10:12 +00:00
Evan Cheng
a2e9953c54
Change RET node to include signness information of the return values. e.g.
...
RET chain, value1, sign1, value2, sign2
llvm-svn: 28509
2006-05-26 23:09:09 +00:00
Owen Anderson
f980a7478f
Trivial testcase that LCSSA can already handle.
...
llvm-svn: 28508
2006-05-26 21:59:20 +00:00