oota-llvm.git
16 years agoFix debug info and globals filled with zeros.
Nick Lewycky [Wed, 25 Jul 2007 03:48:45 +0000 (03:48 +0000)]
Fix debug info and globals filled with zeros.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40483 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMinor cleanup:
Anton Korobeynikov [Wed, 25 Jul 2007 00:06:28 +0000 (00:06 +0000)]
Minor cleanup:
 - Split EH and debug infiormation
 - Make DwarfWriter more verbose in some cases

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40481 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd const to CanBeFoldedBy, CheckAndMask, and CheckOrMask.
Dan Gohman [Tue, 24 Jul 2007 23:00:27 +0000 (23:00 +0000)]
Add const to CanBeFoldedBy, CheckAndMask, and CheckOrMask.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40480 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoA minor simplication in the generated code.
Dan Gohman [Tue, 24 Jul 2007 22:58:00 +0000 (22:58 +0000)]
A minor simplication in the generated code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40479 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse movaps to load a v4f32 build_vector of all-constant values into a
Dan Gohman [Tue, 24 Jul 2007 22:55:08 +0000 (22:55 +0000)]
Use movaps to load a v4f32 build_vector of all-constant values into a
register instead of loading each element individually.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40478 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd initial support for non-local memory dependence analysis.
Owen Anderson [Tue, 24 Jul 2007 21:52:37 +0000 (21:52 +0000)]
Add initial support for non-local memory dependence analysis.
NOTE: This has only been cursorily tested.  Expected improvements soon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40476 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake the copy constructor of SmallPtrSet much faster.
Owen Anderson [Tue, 24 Jul 2007 21:31:23 +0000 (21:31 +0000)]
Make the copy constructor of SmallPtrSet much faster.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40474 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHeal EH handling stuff by emitting correct offsets to callee-saved registers.
Anton Korobeynikov [Tue, 24 Jul 2007 21:07:39 +0000 (21:07 +0000)]
Heal EH handling stuff by emitting correct offsets to callee-saved registers.

Pretty hackish, but code itself is dirty mess, so we won't make anything worse. :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40472 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a GVN pass, using the value numbering code I developed for GVNPRE and the
Owen Anderson [Tue, 24 Jul 2007 17:55:58 +0000 (17:55 +0000)]
Add a GVN pass, using the value numbering code I developed for GVNPRE and the
load elimination code from RedundantLoadElimination.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40469 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake output match actual condition tested. Thanks, Duncan.
Reid Spencer [Tue, 24 Jul 2007 14:35:44 +0000 (14:35 +0000)]
Make output match actual condition tested. Thanks, Duncan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40464 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUnreachable block is not a root node in post dominator tree.
Devang Patel [Tue, 24 Jul 2007 01:02:25 +0000 (01:02 +0000)]
Unreachable block is not a root node in post dominator tree.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40458 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRename a lot of things to change FastDLE to RedundantLoadElimination.
Owen Anderson [Tue, 24 Jul 2007 00:17:04 +0000 (00:17 +0000)]
Rename a lot of things to change FastDLE to RedundantLoadElimination.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40457 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRename FastDLE as RedundantLoadElimination.
Owen Anderson [Tue, 24 Jul 2007 00:08:38 +0000 (00:08 +0000)]
Rename FastDLE as RedundantLoadElimination.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40456 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago1. Make sure we print the Function Value for parameter attribute errors
Reid Spencer [Mon, 23 Jul 2007 23:46:43 +0000 (23:46 +0000)]
1. Make sure we print the Function Value for parameter attribute errors
2. Fold an if statement into the Assert1 macro call.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40455 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd better verification of attributes on function types. It is not permitted
Reid Spencer [Mon, 23 Jul 2007 23:09:55 +0000 (23:09 +0000)]
Add better verification of attributes on function types. It is not permitted
to use sret or inreg on the function. It is equally illegal to use noreturn
or nounwind on a parameter; they only go with the function. This patch
enforces these rules.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40453 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix for PR1567, which involves a weird bug on non-32bit architectures and silly C...
Chandler Carruth [Mon, 23 Jul 2007 22:42:15 +0000 (22:42 +0000)]
Fix for PR1567, which involves a weird bug on non-32bit architectures and silly C type sizes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40451 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd testcases for FastDLE.
Owen Anderson [Mon, 23 Jul 2007 22:18:05 +0000 (22:18 +0000)]
Add testcases for FastDLE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40449 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't delete volatile loads. Doing so is not safe.
Owen Anderson [Mon, 23 Jul 2007 22:05:54 +0000 (22:05 +0000)]
Don't delete volatile loads.  Doing so is not safe.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40448 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoForgot to commit this file.
Owen Anderson [Mon, 23 Jul 2007 22:00:03 +0000 (22:00 +0000)]
Forgot to commit this file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40447 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a comment.
Owen Anderson [Mon, 23 Jul 2007 21:51:37 +0000 (21:51 +0000)]
Fix a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40446 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd FastDLE, the load-elimination counterpart of FastDSE.
Owen Anderson [Mon, 23 Jul 2007 21:48:08 +0000 (21:48 +0000)]
Add FastDLE, the load-elimination counterpart of FastDSE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40445 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMove these tests to use FastDSE instead of old DSE.
Owen Anderson [Mon, 23 Jul 2007 20:49:13 +0000 (20:49 +0000)]
Move these tests to use FastDSE instead of old DSE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40444 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix some uses of dyn_cast to be uses of cast.
Dan Gohman [Mon, 23 Jul 2007 20:24:29 +0000 (20:24 +0000)]
Fix some uses of dyn_cast to be uses of cast.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40443 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDelete the svn:executable property on these files, which aren't executable.
Dan Gohman [Mon, 23 Jul 2007 19:26:08 +0000 (19:26 +0000)]
Delete the svn:executable property on these files, which aren't executable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40441 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix file header.
Owen Anderson [Mon, 23 Jul 2007 18:30:37 +0000 (18:30 +0000)]
Fix file header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40440 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agocompletely remove a transformation that is unsafe in the face of
Chris Lattner [Mon, 23 Jul 2007 17:10:17 +0000 (17:10 +0000)]
completely remove a transformation that is unsafe in the face of
undefs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40439 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoThe Ada f-e produces various auxiliary output files
Duncan Sands [Mon, 23 Jul 2007 15:23:35 +0000 (15:23 +0000)]
The Ada f-e produces various auxiliary output files
that cannot be suppressed and cannot be redirected:
they are dumped in the current working directory.
When running the testsuite this means that these
files do not end up in the Output directory.  The
best solution I could find is to change directory
into Output before running tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40437 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFor multipart tests, place the parts with no
Duncan Sands [Mon, 23 Jul 2007 13:41:53 +0000 (13:41 +0000)]
For multipart tests, place the parts with no
RUN line in Support.  Give up on sending output
to /dev/null - this cannot always be arranged.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40436 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRestore ability to build archives (oops)
Reid Spencer [Mon, 23 Jul 2007 08:20:46 +0000 (08:20 +0000)]
Restore ability to build archives (oops)
Fix -include line so it doesn't reference /dev/null

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40429 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove bizarre use of /dev/null in a makefile include line that
Reid Spencer [Mon, 23 Jul 2007 08:09:15 +0000 (08:09 +0000)]
Remove bizarre use of /dev/null in a makefile include line that
produces warning from make about bad timestamp on /dev/null

Patch by Holger Schurig.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40426 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix some validation errors.
Bill Wendling [Mon, 23 Jul 2007 04:44:02 +0000 (04:44 +0000)]
Fix some validation errors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40417 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoConverted to "svn" and reformatted.
Bill Wendling [Mon, 23 Jul 2007 04:41:42 +0000 (04:41 +0000)]
Converted to "svn" and reformatted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40416 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove dead option.
Reid Spencer [Mon, 23 Jul 2007 04:23:32 +0000 (04:23 +0000)]
Remove dead option.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40415 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSmall change.
Bill Wendling [Mon, 23 Jul 2007 03:56:42 +0000 (03:56 +0000)]
Small change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40413 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPoint to the correct SVN repository.
Bill Wendling [Mon, 23 Jul 2007 03:56:11 +0000 (03:56 +0000)]
Point to the correct SVN repository.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40412 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd missing SSE builtins:
Bill Wendling [Mon, 23 Jul 2007 03:07:27 +0000 (03:07 +0000)]
Add missing SSE builtins:

    __builtin_ia32_cvtss2si64
    __builtin_ia32_cvttss2si64
    __builtin_ia32_cvtsi642ss
    __builtin_ia32_cvtsd2si64
    __builtin_ia32_cvttsd2si64
    __builtin_ia32_cvtsi642sd

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40411 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReport an error if one occurs in releaseModule.
Reid Spencer [Sun, 22 Jul 2007 21:39:37 +0000 (21:39 +0000)]
Report an error if one occurs in releaseModule.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40405 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDisable the string map copy ctor and assignment operators,
Chris Lattner [Sun, 22 Jul 2007 20:08:01 +0000 (20:08 +0000)]
Disable the string map copy ctor and assignment operators,
they don't do the right thing.

Implement StringMap::erase.

Fix a nasty bug in the default ctor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40395 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove -O1 in favour of making llvm-gcc-4.2 a bit
Duncan Sands [Sun, 22 Jul 2007 10:25:44 +0000 (10:25 +0000)]
Remove -O1 in favour of making llvm-gcc-4.2 a bit
smarter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40391 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoThis xform isn't safe, removing it.
Chris Lattner [Sat, 21 Jul 2007 21:27:27 +0000 (21:27 +0000)]
This xform isn't safe, removing it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40378 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate for changes in library.sh
Reid Spencer [Sat, 21 Jul 2007 09:33:41 +0000 (09:33 +0000)]
Update for changes in library.sh

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40371 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoApply temporary work around to fix llvm mis-compilation
Devang Patel [Sat, 21 Jul 2007 00:34:29 +0000 (00:34 +0000)]
Apply temporary work around to fix llvm mis-compilation
reported in PR 1556.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40133 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNo more noResults.
Evan Cheng [Sat, 21 Jul 2007 00:34:19 +0000 (00:34 +0000)]
No more noResults.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40132 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't assume that only Uses can be kills. Defs are marked as kills initially
Dan Gohman [Fri, 20 Jul 2007 23:17:34 +0000 (23:17 +0000)]
Don't assume that only Uses can be kills. Defs are marked as kills initially
when there are no uses. This fixes a dangling-pointer bug, where pointers to
deleted instructions were not removed from kills lists. More info here:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-July/009749.html

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40131 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSimplify the logic for setVolatile.
Dan Gohman [Fri, 20 Jul 2007 23:14:50 +0000 (23:14 +0000)]
Simplify the logic for setVolatile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40130 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNeed -O1 or better to have these builtins lowered to
Duncan Sands [Fri, 20 Jul 2007 22:39:06 +0000 (22:39 +0000)]
Need -O1 or better to have these builtins lowered to
llvm intrinsics in llvm-gcc-4.2.  This is because
get_pointer_alignment bails out: it relies on TER
to compute accurate alignment information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40128 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agozext(undef) = 0 and sext(undef) = 0, not undef.
Chris Lattner [Fri, 20 Jul 2007 22:09:02 +0000 (22:09 +0000)]
zext(undef) = 0 and sext(undef) = 0, not undef.
This hopefully fixes a miscompilation of TargetData.cpp when self hosting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40125 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agothis xform is already done by the constant folder.
Chris Lattner [Fri, 20 Jul 2007 22:06:41 +0000 (22:06 +0000)]
this xform is already done by the constant folder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40124 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded -print-emitted-asm to print out JIT generated asm to cerr.
Evan Cheng [Fri, 20 Jul 2007 21:56:13 +0000 (21:56 +0000)]
Added -print-emitted-asm to print out JIT generated asm to cerr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40123 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate to include clean and install commands.
Reid Spencer [Fri, 20 Jul 2007 20:54:41 +0000 (20:54 +0000)]
Update to include clean and install commands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40119 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNo longer referencing "shared memory" as this can confuse people. The memory is
Chandler Carruth [Fri, 20 Jul 2007 20:14:52 +0000 (20:14 +0000)]
No longer referencing "shared memory" as this can confuse people. The memory is
clearly shared between processors if these instructions are being used, no
further specification of what type of memory is necessary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40118 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSilly HTML
Reid Spencer [Fri, 20 Jul 2007 20:03:33 +0000 (20:03 +0000)]
Silly HTML

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40117 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix validation errors.
Reid Spencer [Fri, 20 Jul 2007 19:59:11 +0000 (19:59 +0000)]
Fix validation errors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40116 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoThis introduces the atomic operation intrinsics into the documentation. This is
Chandler Carruth [Fri, 20 Jul 2007 19:34:37 +0000 (19:34 +0000)]
This introduces the atomic operation intrinsics into the documentation. This is
a preview for the intrinsics that are going to be implemented over the next few
weeks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40115 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake the heuristic for shrinking DenseMap smarter.
Owen Anderson [Fri, 20 Jul 2007 18:56:46 +0000 (18:56 +0000)]
Make the heuristic for shrinking DenseMap smarter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40114 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse SmallVector instead of std::vector.
Devang Patel [Fri, 20 Jul 2007 18:04:54 +0000 (18:04 +0000)]
Use SmallVector instead of std::vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40109 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixing some differences between CVS and SVN diff'ing. Reid fixed these already,
Chandler Carruth [Fri, 20 Jul 2007 17:21:54 +0000 (17:21 +0000)]
Fixing some differences between CVS and SVN diff'ing. Reid fixed these already,
but I think it got lost in the conversion mess.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40107 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoOptimize alignment of loads and stores.
Dan Gohman [Fri, 20 Jul 2007 16:34:21 +0000 (16:34 +0000)]
Optimize alignment of loads and stores.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40102 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate these regression tests to accomodate X86InstrSSE.td now using movups/movaps
Dan Gohman [Fri, 20 Jul 2007 16:31:26 +0000 (16:31 +0000)]
Update these regression tests to accomodate X86InstrSSE.td now using movups/movaps
for everything.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40101 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHave DenseMap auto-shrink itself on clear(). This improves the time to optimize
Owen Anderson [Fri, 20 Jul 2007 16:15:24 +0000 (16:15 +0000)]
Have DenseMap auto-shrink itself on clear().  This improves the time to optimize
403.gcc from 15.2s to 14.3s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40100 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPlace SCCPSolver also in the anonymous namespace. This
Duncan Sands [Fri, 20 Jul 2007 08:56:21 +0000 (08:56 +0000)]
Place SCCPSolver also in the anonymous namespace.  This
pacifies g++-4.2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40089 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a bug where we were marking GEP expressions with the wrong opcode.
Owen Anderson [Fri, 20 Jul 2007 08:19:20 +0000 (08:19 +0000)]
Fix a bug where we were marking GEP expressions with the wrong opcode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40085 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoWhen removing instructions from the analysis, be sure to check the confirmed
Owen Anderson [Fri, 20 Jul 2007 06:16:07 +0000 (06:16 +0000)]
When removing instructions from the analysis, be sure to check the confirmed
flag when determining what to do with dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40079 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNew test.
Evan Cheng [Fri, 20 Jul 2007 00:27:56 +0000 (00:27 +0000)]
New test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40077 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBecause we promote SSE logical ops and loads to v2i64, we often end up generate
Evan Cheng [Fri, 20 Jul 2007 00:27:43 +0000 (00:27 +0000)]
Because we promote SSE logical ops and loads to v2i64, we often end up generate
code that cross integer / floating point domains (e.g. generate pxor / pand for
logical ops on floating point value, movdqa to load / store floating point SSE
values). Given that, it's better to use movaps instead of movdqa and movups
instead of movdqu. They have the same latency but the "aps" variants are one
byte shorter.
If the domain crossing problem is a real performance issue, then we will have to
fix it with dynamic programming based isel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40076 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNo need for noResults anymore.
Evan Cheng [Fri, 20 Jul 2007 00:21:23 +0000 (00:21 +0000)]
No need for noResults anymore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40075 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoOops. These stores actually produce results.
Evan Cheng [Fri, 20 Jul 2007 00:20:46 +0000 (00:20 +0000)]
Oops. These stores actually produce results.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40074 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNew test.
Evan Cheng [Thu, 19 Jul 2007 23:53:50 +0000 (23:53 +0000)]
New test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40073 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoTry fixing it again.
Evan Cheng [Thu, 19 Jul 2007 23:53:29 +0000 (23:53 +0000)]
Try fixing it again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40072 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix custom lowering of SSE FXOR.
Evan Cheng [Thu, 19 Jul 2007 23:36:01 +0000 (23:36 +0000)]
Fix custom lowering of SSE FXOR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40071 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix patterns so we isel the xorps, etc. for floating pt logical SSE ops. DAG combiner...
Evan Cheng [Thu, 19 Jul 2007 23:34:10 +0000 (23:34 +0000)]
Fix patterns so we isel the xorps, etc. for floating pt logical SSE ops. DAG combiner may fold away the (bit_convert (load)).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40070 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFor PR1553:
Reid Spencer [Thu, 19 Jul 2007 23:13:04 +0000 (23:13 +0000)]
For PR1553:
Change the keywords for the zext and sext parameter attributes to be
zeroext and signext so they don't conflict with the keywords for the
instructions of the same name. This gets around the ambiguity.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40069 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHush a noisy warning from GCC 4.2 about overflow during conversion by using
Reid Spencer [Thu, 19 Jul 2007 21:05:30 +0000 (21:05 +0000)]
Hush a noisy warning from GCC 4.2 about overflow during conversion by using
the type "unsigned" instead of uintptr_t for a 1-bit structure field.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40066 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake val_replace fail early, which reduces the time to optimize 403.gcc to 14.8s.
Owen Anderson [Thu, 19 Jul 2007 19:57:13 +0000 (19:57 +0000)]
Make val_replace fail early, which reduces the time to optimize 403.gcc to 14.8s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40064 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDon't need the "&&" to glue lines together.
Bill Wendling [Thu, 19 Jul 2007 18:06:26 +0000 (18:06 +0000)]
Don't need the "&&" to glue lines together.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40063 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoVerify loop info.
Devang Patel [Thu, 19 Jul 2007 18:02:32 +0000 (18:02 +0000)]
Verify loop info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40062 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoProperly initialize value :)
Anton Korobeynikov [Thu, 19 Jul 2007 15:32:47 +0000 (15:32 +0000)]
Properly initialize value :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40059 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReplace mysterious code causing a g++-4.2 warning
Duncan Sands [Thu, 19 Jul 2007 09:42:01 +0000 (09:42 +0000)]
Replace mysterious code causing a g++-4.2 warning
with hopefully correct code that pleases g++-4.2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40051 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix this test. We produce pretty cruddy code for this
Duncan Sands [Thu, 19 Jul 2007 09:38:34 +0000 (09:38 +0000)]
Fix this test.  We produce pretty cruddy code for this
nowadays, unfortunately it's not so easy to get good
code here while still producing correct code in exotic
situations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40050 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAs pointed out by g++-4.2, the original code didn't do
Duncan Sands [Thu, 19 Jul 2007 07:31:58 +0000 (07:31 +0000)]
As pointed out by g++-4.2, the original code didn't do
what it thought it was doing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40044 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemember to free the heap allocated array if we're not going to use it.
Owen Anderson [Thu, 19 Jul 2007 06:45:33 +0000 (06:45 +0000)]
Remember to free the heap allocated array if we're not going to use it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40043 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse SmallVector and DenseMap in even more places.
Owen Anderson [Thu, 19 Jul 2007 06:37:56 +0000 (06:37 +0000)]
Use SmallVector and DenseMap in even more places.
With this, the time to optimize 403.gcc is down to 15.1s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40042 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoTestcase for PR1549
Bill Wendling [Thu, 19 Jul 2007 06:31:11 +0000 (06:31 +0000)]
Testcase for PR1549

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40041 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange ValueTable to use a DenseMap for mapping expressions to value numbers.
Owen Anderson [Thu, 19 Jul 2007 06:13:15 +0000 (06:13 +0000)]
Change ValueTable to use a DenseMap for mapping expressions to value numbers.
This results in a slight speedup for 403.gcc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40040 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSet up ground work to verify preserved analysis info.
Devang Patel [Thu, 19 Jul 2007 05:36:09 +0000 (05:36 +0000)]
Set up ground work to verify preserved analysis info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40039 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMove some sets and maps to SmallPtrSet and DenseMap respectively. This
Owen Anderson [Thu, 19 Jul 2007 03:32:44 +0000 (03:32 +0000)]
Move some sets and maps to SmallPtrSet and DenseMap respectively.  This
reduces the time to optimize 403.gcc from 17.6s to 16.4s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40036 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAfter a basic block is split into two parts,
Devang Patel [Thu, 19 Jul 2007 02:29:24 +0000 (02:29 +0000)]
After a basic block is split into two parts,
second part dominates all the blocks dominated
by original basic block. And first part dominates
second part.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40035 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNow this temp. fix is not required.
Devang Patel [Thu, 19 Jul 2007 02:22:21 +0000 (02:22 +0000)]
Now this temp. fix is not required.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40034 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange instruction description to split OperandList into OutOperandList and
Evan Cheng [Thu, 19 Jul 2007 01:14:50 +0000 (01:14 +0000)]
Change instruction description to split OperandList into OutOperandList and
InOperandList. This gives one piece of important information: # of results
produced by an instruction.
An example of the change:
def ADD32rr  : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
                 "add{l} {$src2, $dst|$dst, $src2}",
                 [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
=>
def ADD32rr  : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
                 "add{l} {$src2, $dst|$dst, $src2}",
                 [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40033 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoOnly adjust esp around calls in presence of alloca.
Evan Cheng [Thu, 19 Jul 2007 00:42:58 +0000 (00:42 +0000)]
Only adjust esp around calls in presence of alloca.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40030 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoOnly adjust esp around calls in presence of alloca.
Evan Cheng [Thu, 19 Jul 2007 00:42:05 +0000 (00:42 +0000)]
Only adjust esp around calls in presence of alloca.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40028 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix typo.
Devang Patel [Wed, 18 Jul 2007 23:50:19 +0000 (23:50 +0000)]
Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40025 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix dominator info update to accommodate CFG changes.
Devang Patel [Wed, 18 Jul 2007 23:48:20 +0000 (23:48 +0000)]
Fix dominator info update to accommodate CFG changes.
This fixes PR1559.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40024 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNew test.
Devang Patel [Wed, 18 Jul 2007 23:47:02 +0000 (23:47 +0000)]
New test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40023 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd comment.
Evan Cheng [Wed, 18 Jul 2007 23:34:48 +0000 (23:34 +0000)]
Add comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40022 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNew test.
Evan Cheng [Wed, 18 Jul 2007 21:39:16 +0000 (21:39 +0000)]
New test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40020 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse MOV instead of LEA to restore ESP if callee-saved frame size is 0; if previous...
Evan Cheng [Wed, 18 Jul 2007 21:26:06 +0000 (21:26 +0000)]
Use MOV instead of LEA to restore ESP if callee-saved frame size is 0; if previous instruction updates esp, fold it in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40018 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd constructor overloads for LoadInst and StoreInst that insert at the
Dan Gohman [Wed, 18 Jul 2007 20:51:11 +0000 (20:51 +0000)]
Add constructor overloads for LoadInst and StoreInst that insert at the
end of a BasicBlock and have an alignment parameter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40016 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement initial memory alignment awareness for SSE instructions. Vector loads
Dan Gohman [Wed, 18 Jul 2007 20:23:34 +0000 (20:23 +0000)]
Implement initial memory alignment awareness for SSE instructions. Vector loads
and stores that have a specified alignment of less than 16 bytes now use
instructions that support misaligned memory references.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40015 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix an issue where assignments that caused a SmallPtrSet to become non-small
Owen Anderson [Wed, 18 Jul 2007 19:54:15 +0000 (19:54 +0000)]
Fix an issue where assignments that caused a SmallPtrSet to become non-small
would result in calling realloc() on a null pointer.  Instead, if we encounter
this situation, make a normal call to malloc().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40014 91177308-0d34-0410-b5e6-96231b3b80d8