Alkis Evlogimenos [Wed, 5 Jan 2005 17:57:28 +0000 (17:57 +0000)]
The Java project now lives under projects/llvm-java.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19295
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 5 Jan 2005 17:31:55 +0000 (17:31 +0000)]
Make opt honor the quiet option when printing the bytecode warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19294
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 5 Jan 2005 17:29:29 +0000 (17:29 +0000)]
1. Make sure that "dot" can be found in the path
2. Fix a bug where the lib directory specified also had to be cwd
3. Weight the output so archive->archive edges are shorter
4. Generate two different graphs: one for libraries, one for objects.
5. Adjust the properties of the graphs till it looks nice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19293
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 5 Jan 2005 17:26:00 +0000 (17:26 +0000)]
Ignore autoconf/aclocal generated stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19292
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Jan 2005 16:30:14 +0000 (16:30 +0000)]
1. If a double FP constant must be put into a constant pool, but it can be
precisely represented as a float, put it into the constant pool as a
float.
2. Use the cbw/cwd/cdq instructions instead of an explicit SAR for signed
division.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19291
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Jan 2005 16:27:34 +0000 (16:27 +0000)]
add an assertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19290
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Jan 2005 16:09:16 +0000 (16:09 +0000)]
Minor optimization to allocate R8 registers in a better order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19289
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Jan 2005 16:01:00 +0000 (16:01 +0000)]
ignore generated file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19288
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Jan 2005 16:00:42 +0000 (16:00 +0000)]
Ignore generated file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19287
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Jan 2005 16:00:00 +0000 (16:00 +0000)]
Ignore .dir
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19286
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 5 Jan 2005 15:23:06 +0000 (15:23 +0000)]
Update this test to pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19285
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 5 Jan 2005 06:41:10 +0000 (06:41 +0000)]
Cleanup configuration for Cygwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19284
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 4 Jan 2005 06:18:10 +0000 (06:18 +0000)]
Make bison/flex build steps output the same message in Visual Studio as
on Unix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19283
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 4 Jan 2005 06:01:55 +0000 (06:01 +0000)]
Add C backend to llc in Visual Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19282
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Jan 2005 01:58:26 +0000 (01:58 +0000)]
Test that trivial constants are not printed in hex notation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19281
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Jan 2005 01:56:57 +0000 (01:56 +0000)]
To not break TBAA rules, use a union.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19280
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Jan 2005 01:56:28 +0000 (01:56 +0000)]
Do not let 'ftostr' return a string that starts with spaces. This allows
the AsmWriter to emit FP constants like 1.0 in normal exponential notation
instead of hex notation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19279
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Jan 2005 22:27:58 +0000 (22:27 +0000)]
Add a testcase to check that initializer that CAN be evaluated statically ARE.
These used to result in dynamic initializations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19278
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Jan 2005 22:26:38 +0000 (22:26 +0000)]
Fix this script to work with hyphenated llvm-gcc and friend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19277
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Mon, 3 Jan 2005 17:42:57 +0000 (17:42 +0000)]
Quote the paths and not the assignment of the PATH variable.
This seems to make things happier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19276
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Mon, 3 Jan 2005 17:41:56 +0000 (17:41 +0000)]
Joining the quote fray...
Reverting the quote patch. For some reason, this breaks the building of
llvm/runtime (the shell doesn't like it for some reason). I might play
with it to see if I can get the quotes done in such a way that the shell
like it, but no promises.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19275
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Mon, 3 Jan 2005 16:37:16 +0000 (16:37 +0000)]
Add additional header file to VS project. Patch submitted by Morten.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19274
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Mon, 3 Jan 2005 16:34:19 +0000 (16:34 +0000)]
Revert elimination of global variable hack... still needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19273
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 3 Jan 2005 05:46:46 +0000 (05:46 +0000)]
Integrate dependency graphs.
Make it HTML 4.01 Strict compliant
Provide better explanations of the dependency information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19272
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 3 Jan 2005 05:30:57 +0000 (05:30 +0000)]
Add library dependency and object dependency graphs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19271
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Jan 2005 04:39:16 +0000 (04:39 +0000)]
new testcase for PR481
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19270
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Jan 2005 04:20:21 +0000 (04:20 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19269
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Jan 2005 04:15:11 +0000 (04:15 +0000)]
New testcase for PR487
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19268
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 3 Jan 2005 04:05:32 +0000 (04:05 +0000)]
Make sure the path is properly set in the llvmgcc and llvmgxx variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19267
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 3 Jan 2005 04:04:54 +0000 (04:04 +0000)]
Re-apply last (reverted) patch. Reverting doesn't solve the actual problem
and creates issues on other platforms like Cygwin and MingW.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19266
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Mon, 3 Jan 2005 02:44:54 +0000 (02:44 +0000)]
Don't quote the PATH variable value just in case it has spaces in it, as
it breaks "gmake check".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19265
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Jan 2005 01:27:59 +0000 (01:27 +0000)]
ADC and IMUL are also commutable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19264
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 23:07:31 +0000 (23:07 +0000)]
This hunk:
- unsigned TrueValue = getReg(TrueVal, BB, BB->begin());
+ unsigned TrueValue = getReg(TrueVal);
Fixes the PPC regressions from last night.
The other hunk is just a clarity improvement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19263
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 22:55:16 +0000 (22:55 +0000)]
Remove dead directories
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19262
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 22:53:52 +0000 (22:53 +0000)]
This lib is dead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19261
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 22:52:28 +0000 (22:52 +0000)]
Remove a bunch of useless empty libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19260
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 22:50:00 +0000 (22:50 +0000)]
This is no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19259
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 21:11:11 +0000 (21:11 +0000)]
Testcase for PR494
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19258
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 19:01:33 +0000 (19:01 +0000)]
xfail these tests, whcih require more info in the code generator to implement
correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19257
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 2 Jan 2005 17:43:20 +0000 (17:43 +0000)]
Avoid use of -fomit-frame-pointer on FreeBSD platforms. It causes thrown
exceptions to abort() in cases where it should not.
Many thanks to Duraid Madina for doing the heavy lifting on the analysis
of this problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19256
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 2 Jan 2005 09:45:54 +0000 (09:45 +0000)]
Quote the PATH variable value just in case it has spaces in it (like on
Cygwin).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19255
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 2 Jan 2005 09:45:04 +0000 (09:45 +0000)]
Correct the case of a #include directory name, just in case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19254
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sun, 2 Jan 2005 04:44:36 +0000 (04:44 +0000)]
Cleanup some Visual Studio project dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19253
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sun, 2 Jan 2005 04:23:12 +0000 (04:23 +0000)]
Eliminate the use of the global variable hack in the X86 target that was used
to get Visual Studio to link in X86.lib to the executables that need it. There
is another way of doing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19252
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 04:18:17 +0000 (04:18 +0000)]
Disable 2->3 address promotion of add and inc instructions to LEA's. In
addition to being three address, LEA's don't set the flags.
This fixes 186.crafty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19251
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:46:29 +0000 (02:46 +0000)]
Check in an old test that never made it into CVS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19250
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:38:18 +0000 (02:38 +0000)]
Add a new method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:37:46 +0000 (02:37 +0000)]
Add support for SETNPr to lower to memory form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19248
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:37:07 +0000 (02:37 +0000)]
Implement the convertToThreeAddress method, add support for inverting JP/JNP
branches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19247
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:35:46 +0000 (02:35 +0000)]
Two changes here:
1. Add new instructions for checking parity flags: JP, JNP, SETP, SETNP.
2. Set the isCommutable and isPromotableTo3Address bits on several
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19246
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:34:12 +0000 (02:34 +0000)]
Make the 2-address instruction lowering pass smarter in two ways:
1. If we are two-addressing a commutable instruction and the LHS is not the
last use of the variable, see if the instruction is the last use of the
RHS. If so, commute the instruction, allowing us to avoid a
register-register copy in many cases for common instructions like ADD, OR,
AND, etc on X86.
2. If #1 doesn't hold, and if this is an instruction that also existing in
3-address form, promote the instruction to a 3-address instruction to
avoid the register-register copy. We can do this for several common
instructions in X86, including ADDrr, INC, DEC, etc.
This patch implements test/Regression/CodeGen/X86/commute-two-addr.ll,
overlap-add.ll, and overlap-shift.ll when I check in the X86 support for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19245
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:30:04 +0000 (02:30 +0000)]
Add several testcases for new optimizations in the code generator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:29:04 +0000 (02:29 +0000)]
Expose isConvertibleToThreeAddress and isCommutable bits to the code generator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:28:31 +0000 (02:28 +0000)]
Add some bits that can be set on instructions. Renumber existing bits so
they are dense. Add a virtual method that targets can choose to implement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19242
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 2 Jan 2005 02:27:48 +0000 (02:27 +0000)]
Add some bits that can be set for instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19241
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 2 Jan 2005 00:10:03 +0000 (00:10 +0000)]
Make printing a warning message optional in CheckBytecodeOutputToConsole.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19240
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 2 Jan 2005 00:08:46 +0000 (00:08 +0000)]
Prevent output of bytecode to std::cout unless the --force flag is given.
This prevents bytecode splats with usage like: cat file.ll | llvm-as -
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19239
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 1 Jan 2005 23:57:01 +0000 (23:57 +0000)]
Move the code for printing out a warning about bytecode output to a console
into lib/Support so it can be used with other tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19238
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 1 Jan 2005 23:56:20 +0000 (23:56 +0000)]
Implement a function to print a warning if bytecode output is to be sent to
a terminal/console.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19237
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 22:54:05 +0000 (22:54 +0000)]
Add functions for determining if the stdin/out/err is connected to a
console or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19236
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 22:32:26 +0000 (22:32 +0000)]
Add llvm-link, Linker projects to Visual Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19235
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 22:30:19 +0000 (22:30 +0000)]
Add missing header files to projects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19234
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 1 Jan 2005 22:29:26 +0000 (22:29 +0000)]
Add functions for determining if the stdin/out/err is connected to a
console or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19233
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 22:10:32 +0000 (22:10 +0000)]
Fix typo 'ompress' => 'compress'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19232
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 22:05:56 +0000 (22:05 +0000)]
Add llvm-ranlib project to Visual Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19231
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 22:00:28 +0000 (22:00 +0000)]
Add llvm-ar project to Visual Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19230
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 21:35:39 +0000 (21:35 +0000)]
Add -v option to bison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19229
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 21:34:18 +0000 (21:34 +0000)]
Add missing file SystemUtils.cpp to Support project.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19228
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 20:51:41 +0000 (20:51 +0000)]
Add llvm-as project to Visual Studio
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19227
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 20:18:03 +0000 (20:18 +0000)]
Add llvm-dis project to Visual Studio
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19226
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 19:37:14 +0000 (19:37 +0000)]
Put executables into a single directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19225
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 18:58:23 +0000 (18:58 +0000)]
Fix bountiful sources of VC++ 'possible loss of data' warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19224
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 1 Jan 2005 18:17:40 +0000 (18:17 +0000)]
Improve TableGen dependencies
Move TableGen generated files out of the src tree
Add descriptions to the custom build steps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19223
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 1 Jan 2005 18:16:16 +0000 (18:16 +0000)]
Add HAVE_SBRK
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19222
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 1 Jan 2005 18:14:18 +0000 (18:14 +0000)]
Ignore some files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19221
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:22:27 +0000 (16:22 +0000)]
This is a bulk commit that implements the following primary improvements:
* We can now fold cast instructions into select instructions that
have at least one constant operand.
* We now optimize expressions more aggressively based on bits that are
known to be zero. These optimizations occur a lot in code that uses
bitfields even in simple ways.
* We now turn more cast-cast sequences into AND instructions. Before we
would only do this if it if all types were unsigned. Now only the
middle type needs to be unsigned (guaranteeing a zero extend).
* We transform sign extensions into zero extensions in several cases.
This corresponds to these test/Regression/Transforms/InstCombine testcases:
2004-11-22-Missed-and-fold.ll
and.ll: test28-29
cast.ll: test21-24
and-or-and.ll
cast-cast-to-and.ll
zeroext-and-reduce.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19220
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:14:46 +0000 (16:14 +0000)]
New testcases that we should combine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19219
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:14:18 +0000 (16:14 +0000)]
New testcase for common bitfield manipulation instruction sequences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19218
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:13:43 +0000 (16:13 +0000)]
Add a bunch of tests for cases that should be eliminated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19217
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:13:19 +0000 (16:13 +0000)]
Add a bunch of tests for ANDs that should be eliminated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19216
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:12:52 +0000 (16:12 +0000)]
This now works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19215
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:10:12 +0000 (16:10 +0000)]
Fix a FIXME: Select instructions on longs were miscompiled.
While we're at it, improve codegen of select instructions. For this
testcase:
int %test(bool %C, int %A, int %B) {
%D = select bool %C, int %A, int %B
ret int %D
}
We used to generate this code:
_test:
cmpwi cr0, r3, 0
bne .LBB_test_2 ;
.LBB_test_1: ;
b .LBB_test_3 ;
.LBB_test_2: ;
or r5, r4, r4
.LBB_test_3: ;
or r3, r5, r5
blr
Now we emit:
_test:
cmpwi cr0, r3, 0
bne .LBB_test_2 ;
.LBB_test_1: ;
or r4, r5, r5
.LBB_test_2: ;
or r3, r4, r4
blr
-Chris
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19214
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:06:57 +0000 (16:06 +0000)]
Substantially improve the code generated by non-folded setcc instructions.
In particular, instead of compiling this:
bool %test(int %A, int %B) {
%C = setlt int %A, %B
ret bool %C
}
to this:
test:
save %sp, -96, %sp
subcc %i0, %i1, %g0
bl .LBBtest_1 !
nop
ba .LBBtest_2 !
nop
.LBBtest_1: !
or %g0, 1, %i0
ba .LBBtest_3 !
nop
.LBBtest_2: !
or %g0, 0, %i0
ba .LBBtest_3 !
nop
.LBBtest_3: !
restore %g0, %g0, %g0
retl
nop
We now compile it to this:
test:
save %sp, -96, %sp
subcc %i0, %i1, %g0
or %g0, 1, %i0
bl .LBBtest_2 !
nop
.LBBtest_1: !
or %g0, %g0, %i0
.LBBtest_2: !
restore %g0, %g0, %g0
retl
nop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19213
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:02:12 +0000 (16:02 +0000)]
Implement SimplifyCFG/DeadSetCC.ll
SimplifyCFG is one of those passes that we use for final cleanup: it should
not rely on other passes to clean up its garbage. This fixes the "why are
trivially dead setcc's in the output of gccas" problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19212
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 16:00:56 +0000 (16:00 +0000)]
Add new test to make sure simplifycfg doesn't leave around trivially
dead instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19211
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 15:59:57 +0000 (15:59 +0000)]
Allow getZeroExtend and getSignExtend to work with boolean inputs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19210
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 15:58:55 +0000 (15:58 +0000)]
Add a useful accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19209
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 1 Jan 2005 15:58:41 +0000 (15:58 +0000)]
Add two helper functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19208
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 1 Jan 2005 09:26:55 +0000 (09:26 +0000)]
Update to autoconf 2.59 standards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19207
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 31 Dec 2004 22:56:14 +0000 (22:56 +0000)]
Correct the conditional test for non-portable tools so that it will
correctly omit them for non-Unix operating systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19206
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 31 Dec 2004 22:54:28 +0000 (22:54 +0000)]
For PR351:
Make LLVM_ON_UNIX and LLVM_ON_WIN32 available in the makefiles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19205
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 31 Dec 2004 19:48:59 +0000 (19:48 +0000)]
Describe both objdir==srcdir and objdir!=srcdir methods of building LLVM
libraries and tools. Thanks to Henrik Bach for this suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19204
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 31 Dec 2004 19:03:31 +0000 (19:03 +0000)]
Where do these tabs keep coming from???
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19203
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 31 Dec 2004 19:01:08 +0000 (19:01 +0000)]
Mostly cleanup, but also some bug fixes, for win32/Path.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19202
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 31 Dec 2004 05:53:27 +0000 (05:53 +0000)]
Fix a compilation error for the case where mallinfo() is not available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19201
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 31 Dec 2004 05:49:15 +0000 (05:49 +0000)]
For PR351:
* lib/System depends on sbrk(3), make sure we check for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19200
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 31 Dec 2004 05:07:26 +0000 (05:07 +0000)]
Get rid of those nasty tabs...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19199
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 31 Dec 2004 04:39:07 +0000 (04:39 +0000)]
Bring win32/Path.cpp up to date with respect to Unix/Path.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19198
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 31 Dec 2004 00:13:14 +0000 (00:13 +0000)]
* Add missing libraries: Linker, Archive, SparcV8
* Make library descriptions consistently lower case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19197
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 30 Dec 2004 23:13:12 +0000 (23:13 +0000)]
* Don't include weak definitions as a definition
* Make subordinate libraries presented with a vertical list instead of all
listed on a single line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19196
91177308-0d34-0410-b5e6-
96231b3b80d8