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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Dan Gohman [Wed, 18 Jul 2007 16:29:46 +0000 (16:29 +0000)]
It's not necessary to do rounding for alloca operations when the requested
alignment is equal to the stack alignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 18 Jul 2007 08:21:49 +0000 (08:21 +0000)]
New entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39998
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 18 Jul 2007 05:27:33 +0000 (05:27 +0000)]
Fix a sys::Path API error caught by a gcc 4.2 warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39995
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Jul 2007 04:51:57 +0000 (04:51 +0000)]
Work around a bogus gcc 4.2 warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39993
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 18 Jul 2007 04:37:24 +0000 (04:37 +0000)]
Fix this test to not rely on the path but to use the
configured llvm-gcc instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39992
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 18 Jul 2007 04:26:05 +0000 (04:26 +0000)]
The property is svn:executable not svn:execute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39991
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 18 Jul 2007 04:24:20 +0000 (04:24 +0000)]
Alphabetize. Document -mlimit parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39990
91177308-0d34-0410-b5e6-
96231b3b80d8