oota-llvm.git
16 years agoFix a typo noticed by Alain Frisch.
Gordon Henriksen [Sat, 1 Dec 2007 20:59:23 +0000 (20:59 +0000)]
Fix a typo noticed by Alain Frisch.

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

16 years agoIntegrate the readonly/readnone logic more deeply
Duncan Sands [Sat, 1 Dec 2007 07:51:45 +0000 (07:51 +0000)]
Integrate the readonly/readnone logic more deeply
into alias analysis.  This meant updating the API
which now has versions of the getModRefBehavior,
doesNotAccessMemory and onlyReadsMemory methods
which take a callsite parameter.  These should be
used unless the callsite is not known, since in
general they can do a better job than the versions
that take a function.  Also, users should no longer
call the version of getModRefBehavior that takes
both a function and a callsite.  To reduce the
chance of misuse it is now protected.

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

16 years agoFix a bug where splitting cause some unnecessary spilling.
Evan Cheng [Sat, 1 Dec 2007 04:42:39 +0000 (04:42 +0000)]
Fix a bug where splitting cause some unnecessary spilling.

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

16 years agoFixes for MachineLoopInfo, mostly from Evan. With these, it should be almost useable!
Owen Anderson [Sat, 1 Dec 2007 03:01:39 +0000 (03:01 +0000)]
Fixes for MachineLoopInfo, mostly from Evan.  With these, it should be almost useable!

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

16 years agoAllow some reloads to be folded in multi-use cases. Specifically testl r, r -> cmpl...
Evan Cheng [Sat, 1 Dec 2007 02:07:52 +0000 (02:07 +0000)]
Allow some reloads to be folded in multi-use cases. Specifically testl r, r -> cmpl [mem], 0.

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

16 years agoAdd target triple to include/llvm/Config/config.h.in. Regenerate all files.
Eric Christopher [Sat, 1 Dec 2007 00:34:39 +0000 (00:34 +0000)]
Add target triple to include/llvm/Config/config.h.in. Regenerate all files.

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

16 years agoChange LinkTimeOptimizer.h install location.
Devang Patel [Sat, 1 Dec 2007 00:24:50 +0000 (00:24 +0000)]
Change LinkTimeOptimizer.h install location.

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

16 years agoChange lib lto install location.
Devang Patel [Fri, 30 Nov 2007 23:27:57 +0000 (23:27 +0000)]
Change lib lto install location.

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

16 years agoFixed subtle bug in Deserializer::JumpTo when jumping when the block-nesting
Ted Kremenek [Fri, 30 Nov 2007 22:45:05 +0000 (22:45 +0000)]
Fixed subtle bug in Deserializer::JumpTo when jumping when the block-nesting
information matching did not exactly match the underlying stream's scoping
information.

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

16 years agoFixed potential bug where CurWord is not zeroed out in JumpToBit.
Ted Kremenek [Fri, 30 Nov 2007 22:39:46 +0000 (22:39 +0000)]
Fixed potential bug where CurWord is not zeroed out in JumpToBit.

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

16 years agoDo not fold reload into an instruction with multiple uses. It issues one extra load.
Evan Cheng [Fri, 30 Nov 2007 21:23:43 +0000 (21:23 +0000)]
Do not fold reload into an instruction with multiple uses. It issues one extra load.

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

16 years agochain update requests properly.
Chris Lattner [Fri, 30 Nov 2007 18:52:58 +0000 (18:52 +0000)]
chain update requests properly.

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

16 years agoSmall optimization of parameter attribute lookup.
Duncan Sands [Fri, 30 Nov 2007 18:20:58 +0000 (18:20 +0000)]
Small optimization of parameter attribute lookup.

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

16 years agoAdd a convenience method for modifying parameter
Duncan Sands [Fri, 30 Nov 2007 18:19:18 +0000 (18:19 +0000)]
Add a convenience method for modifying parameter
attributes.  While there, I noticed that not all
attribute methods returned a pointer-to-constant,
so I fixed that.

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

16 years agoCheck that there are not more attributes than
Duncan Sands [Fri, 30 Nov 2007 15:52:20 +0000 (15:52 +0000)]
Check that there are not more attributes than
function parameters.

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

16 years agoProvide a way to update DescGlobals cache directly.
Devang Patel [Fri, 30 Nov 2007 00:51:33 +0000 (00:51 +0000)]
Provide a way to update DescGlobals cache directly.

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

16 years agoDo not lose rematerialization info when spilling already split live intervals.
Evan Cheng [Thu, 29 Nov 2007 23:02:50 +0000 (23:02 +0000)]
Do not lose rematerialization info when spilling already split live intervals.

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

16 years agoFix a miscompilation in spiff on PPC.
Owen Anderson [Thu, 29 Nov 2007 18:02:22 +0000 (18:02 +0000)]
Fix a miscompilation in spiff on PPC.

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

16 years agoFix a major performance issue with splitting. If there is a def (not def/use)
Evan Cheng [Thu, 29 Nov 2007 10:12:14 +0000 (10:12 +0000)]
Fix a major performance issue with splitting. If there is a def (not def/use)
in the middle of a split basic block, create a new live interval starting at
the def. This avoid artifically extending the live interval over a number of
cycles where it is dead. e.g.

bb1:
       = vr1204   (use / kill) <= new interval starts and ends here.
...
...
vr1204 =          (new def)   <= start a new interval here.
       = vr1204   (use)

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

16 years agoUpdate tests.
Evan Cheng [Thu, 29 Nov 2007 10:03:54 +0000 (10:03 +0000)]
Update tests.

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

16 years agoReplace the odd kill# hack with something less fragile.
Evan Cheng [Thu, 29 Nov 2007 09:49:23 +0000 (09:49 +0000)]
Replace the odd kill# hack with something less fragile.

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

16 years agoSmall parameter attributes cleanup.
Duncan Sands [Thu, 29 Nov 2007 08:30:15 +0000 (08:30 +0000)]
Small parameter attributes cleanup.

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

16 years agoPass the whole StringMapEntry into StringMapEntryInitializer::Initialize.
Chris Lattner [Thu, 29 Nov 2007 06:14:41 +0000 (06:14 +0000)]
Pass the whole StringMapEntry into StringMapEntryInitializer::Initialize.

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

16 years agoprovide an optional API to allow datatypes in a stringmap to be *gasp*
Chris Lattner [Thu, 29 Nov 2007 06:04:41 +0000 (06:04 +0000)]
provide an optional API to allow datatypes in a stringmap to be *gasp*
initialized with a value if they want, by specializing the
StringMapEntryInitializer class.

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

16 years agoFixed various live interval splitting bugs / compile time issues.
Evan Cheng [Thu, 29 Nov 2007 01:06:25 +0000 (01:06 +0000)]
Fixed various live interval splitting bugs / compile time issues.

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

16 years agoKill info update bug.
Evan Cheng [Thu, 29 Nov 2007 01:05:47 +0000 (01:05 +0000)]
Kill info update bug.

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

16 years agoNew testcase for PR1744
Chris Lattner [Wed, 28 Nov 2007 22:43:34 +0000 (22:43 +0000)]
New testcase for PR1744

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

16 years agoWork around a GCC bug, producing this code:
Chris Lattner [Wed, 28 Nov 2007 21:26:17 +0000 (21:26 +0000)]
Work around a GCC bug, producing this code:

  unsigned char *llvm_cbe_X;
...
  llvm_cbe_X = 0; *((void**)&llvm_cbe_X) = __builtin_stack_save();

instead of:

  llvm_cbe_X = __builtin_stack_save();

See PR1809 for details.

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

16 years agoAdd a note
Chris Lattner [Wed, 28 Nov 2007 19:26:42 +0000 (19:26 +0000)]
Add a note

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

16 years agoImplement ExpandOperationResult for ppc i64 fp->int, which fixes
Chris Lattner [Wed, 28 Nov 2007 18:44:47 +0000 (18:44 +0000)]
Implement ExpandOperationResult for ppc i64 fp->int, which fixes
CodeGen/Generic/fp_to_int.ll among others.  Its unclear why this
just started failing...

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

16 years agofor consistency, allow a fallthrough if the final check returns null.
Chris Lattner [Wed, 28 Nov 2007 18:30:18 +0000 (18:30 +0000)]
for consistency, allow a fallthrough if the final check returns null.

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

16 years agoupgrade this test
Chris Lattner [Wed, 28 Nov 2007 18:22:12 +0000 (18:22 +0000)]
upgrade this test

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

16 years agomake this test have a deterministic result.
Chris Lattner [Wed, 28 Nov 2007 18:20:49 +0000 (18:20 +0000)]
make this test have a deterministic result.

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

16 years agoAdd some convenience methods for querying attributes, and
Duncan Sands [Wed, 28 Nov 2007 17:07:01 +0000 (17:07 +0000)]
Add some convenience methods for querying attributes, and
use them.

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

16 years agoRevert previous "fix" - the breakage was due to some
Duncan Sands [Wed, 28 Nov 2007 16:50:29 +0000 (16:50 +0000)]
Revert previous "fix" - the breakage was due to some
local changes, not the "not".

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

16 years agoThis test somehow got an extra "not" during the
Duncan Sands [Wed, 28 Nov 2007 15:36:27 +0000 (15:36 +0000)]
This test somehow got an extra "not" during the
recent stderr updates.

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

16 years agoMy compiler complains that "x always evaluates to true"
Duncan Sands [Wed, 28 Nov 2007 10:36:19 +0000 (10:36 +0000)]
My compiler complains that "x always evaluates to true"
in this call:

Result.IntVal = APInt(80, 2, x);

What is x?

uint16_t x[8];

I deduce that the APInt constructor being used is this one:

  APInt(uint32_t numBits, uint64_t val, bool isSigned = false);

rather than this one:

  APInt(uint32_t numBits, uint32_t numWords, const uint64_t bigVal[]);

That doesn't seem right!  This fix compiles but is otherwise completely
untested.

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

16 years agoAdd missing newlines at EOF.
Duncan Sands [Wed, 28 Nov 2007 10:13:38 +0000 (10:13 +0000)]
Add missing newlines at EOF.

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

16 years agoxfail a test
Chris Lattner [Wed, 28 Nov 2007 05:37:13 +0000 (05:37 +0000)]
xfail a test

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

16 years agoupdate this test after the fmrrd fix
Chris Lattner [Wed, 28 Nov 2007 05:27:07 +0000 (05:27 +0000)]
update this test after the fmrrd fix

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

16 years agoFix typo
Tanya Lattner [Wed, 28 Nov 2007 05:14:49 +0000 (05:14 +0000)]
Fix typo

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

16 years agoModified instructions to configure llvm-test by configure llvm with the Path --with...
Tanya Lattner [Wed, 28 Nov 2007 05:13:45 +0000 (05:13 +0000)]
Modified instructions to configure llvm-test by configure llvm with the Path --with-llvmgccdir set.

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

16 years agoFix bug in regression tests that ignored stderr output in RUN lines. Updated tests...
Tanya Lattner [Wed, 28 Nov 2007 04:57:00 +0000 (04:57 +0000)]
Fix bug in regression tests that ignored stderr output in RUN lines. Updated tests and fixed broken run lines.
XFAILed 3 arm regressions (will file bugs)

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

16 years agoRecover compile time regression.
Evan Cheng [Wed, 28 Nov 2007 01:28:46 +0000 (01:28 +0000)]
Recover compile time regression.

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

16 years agoAdd MachineLoopInfo. This is not yet tested.
Owen Anderson [Tue, 27 Nov 2007 22:47:08 +0000 (22:47 +0000)]
Add MachineLoopInfo.  This is not yet tested.

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

16 years agocommit testcase I forgot to svn add.
Chris Lattner [Tue, 27 Nov 2007 22:43:37 +0000 (22:43 +0000)]
commit testcase I forgot to svn add.

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

16 years agoseveral entries got significantly better, though they still aren't done.
Chris Lattner [Tue, 27 Nov 2007 22:41:52 +0000 (22:41 +0000)]
several entries got significantly better, though they still aren't done.

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

16 years agoimplement a trivial readme entry.
Chris Lattner [Tue, 27 Nov 2007 22:36:16 +0000 (22:36 +0000)]
implement a trivial readme entry.

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

16 years agoFix a crash on invalid code due to memcpy lowering.
Chris Lattner [Tue, 27 Nov 2007 22:14:42 +0000 (22:14 +0000)]
Fix a crash on invalid code due to memcpy lowering.

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

16 years agoMake this actually work on systems that support ppc long double.
Chris Lattner [Tue, 27 Nov 2007 20:45:25 +0000 (20:45 +0000)]
Make this actually work on systems that support ppc long double.

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

16 years agoUnbreak all of the darwin/ppc32 JIT failures having to do
Chris Lattner [Tue, 27 Nov 2007 20:41:32 +0000 (20:41 +0000)]
Unbreak all of the darwin/ppc32 JIT failures having to do
with not being able to find printf.

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

16 years agoUpdated GenLibDeps.pl to employ "use strict" to help prevent uses of variables
Ted Kremenek [Tue, 27 Nov 2007 19:31:11 +0000 (19:31 +0000)]
Updated GenLibDeps.pl to employ "use strict" to help prevent uses of variables
that have not yet been defined.

Removed used of grep and sed when parsing the results of "nm". This was
originally motivated because if the user has specified options to grep using
the environment variable GREP_OPTIONS this could break the script. Piping
through grep/sed/sort/uniq is also (to my understanding) not necessary, and
the equivalent operations can be done much faster in the Perl script.

Using a crude benchmark, these changes resulted in a 3x speedup in the
execution of GenLibDeps.pl.

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

16 years agoSupport returning non-power-of-2 vectors to unblock some work
Nate Begeman [Tue, 27 Nov 2007 19:28:48 +0000 (19:28 +0000)]
Support returning non-power-of-2 vectors to unblock some work

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

16 years agosomething wrong with this opt
Andrew Lenharth [Tue, 27 Nov 2007 18:31:30 +0000 (18:31 +0000)]
something wrong with this opt

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

16 years agoAdd testcase for last llvm-gcc tweaks
Anton Korobeynikov [Tue, 27 Nov 2007 18:21:29 +0000 (18:21 +0000)]
Add testcase for last llvm-gcc tweaks

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

16 years agoAdded quotes around $(NM_PATH) argument to GenLibDeps.pl script so that
Ted Kremenek [Tue, 27 Nov 2007 17:53:54 +0000 (17:53 +0000)]
Added quotes around $(NM_PATH) argument to GenLibDeps.pl script so that
the "-p" option is actually seen by nm (it was being dropped as it was
considered as separate argument to the Perl script).

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

16 years agoUnbreak backwards compatibility with bytecode format. Regression
Chris Lattner [Tue, 27 Nov 2007 17:48:06 +0000 (17:48 +0000)]
Unbreak backwards compatibility with bytecode format.  Regression
introduced by this patch:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071126/055824.html

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

16 years agoFix PR1146: parameter attributes are longer part of
Duncan Sands [Tue, 27 Nov 2007 13:23:08 +0000 (13:23 +0000)]
Fix PR1146: parameter attributes are longer part of
the function type, instead they belong to functions
and function calls.  This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll).  Hopefully
a bitcode guru (who might that be? :) ) will fix it.

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

16 years agoMake this pass for CYGWIN.
Zhou Sheng [Tue, 27 Nov 2007 06:23:59 +0000 (06:23 +0000)]
Make this pass for CYGWIN.

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

16 years agoMake this testcase compatible with CYGWIN.
Zhou Sheng [Tue, 27 Nov 2007 06:17:01 +0000 (06:17 +0000)]
Make this testcase compatible with CYGWIN.

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

16 years agoerr, no really.
Chris Lattner [Tue, 27 Nov 2007 06:14:32 +0000 (06:14 +0000)]
err, no really.

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

16 years agodon't depend on ADL.
Chris Lattner [Tue, 27 Nov 2007 06:14:12 +0000 (06:14 +0000)]
don't depend on ADL.

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

16 years agoMake LoopInfoBase more generic, in preparation for having MachineLoopInfo. This...
Owen Anderson [Tue, 27 Nov 2007 03:43:35 +0000 (03:43 +0000)]
Make LoopInfoBase more generic, in preparation for having MachineLoopInfo.  This involves a small interface change.

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

16 years agoAdd accessor for getting the underlying templated type. This is necessary for templa...
Owen Anderson [Tue, 27 Nov 2007 03:33:40 +0000 (03:33 +0000)]
Add accessor for getting the underlying templated type.  This is necessary for templated LoopInfo.

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

16 years agoMoving TGLexer.h from source to header file tab in TableGen project file
Chuck Rose III [Tue, 27 Nov 2007 01:25:12 +0000 (01:25 +0000)]
Moving TGLexer.h from source to header file tab in TableGen project file

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

16 years agoChange &| to |&.
Dan Gohman [Tue, 27 Nov 2007 00:50:57 +0000 (00:50 +0000)]
Change &| to |&.

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

16 years agoChange grep '' to grep {}.
Dan Gohman [Tue, 27 Nov 2007 00:10:35 +0000 (00:10 +0000)]
Change grep '' to grep {}.
Change 2>&1 | to |&.

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

16 years agoDon't redirect llvm-as's stderr to llvm-dis.
Dan Gohman [Tue, 27 Nov 2007 00:07:33 +0000 (00:07 +0000)]
Don't redirect llvm-as's stderr to llvm-dis.
Change grep '' to grep {}.

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

16 years agoRemove unnecessary && from the RUN lines of this test.
Dan Gohman [Tue, 27 Nov 2007 00:03:38 +0000 (00:03 +0000)]
Remove unnecessary && from the RUN lines of this test.

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

16 years agoDon't lower srem/urem X%C to X-X/C*C unless the division is actually
Dan Gohman [Mon, 26 Nov 2007 23:46:11 +0000 (23:46 +0000)]
Don't lower srem/urem X%C to X-X/C*C unless the division is actually
optimized. This avoids creating illegal divisions when the combiner is
running after legalize; this fixes PR1815. Also, it produces better
code in the included testcase by avoiding the subtract and multiply
when the division isn't optimized.

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

16 years agoAdd TGParser files to VStudio project files. Removed generated files section from...
Chuck Rose III [Mon, 26 Nov 2007 23:19:59 +0000 (23:19 +0000)]
Add TGParser files to VStudio project files.  Removed generated files section from TableGen project file as it is no longer needed.  #Include <algorithm> directly from TGParser.cpp so it can see std::reverse.

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

16 years agoFix another bug that was causing siod to fail.
Owen Anderson [Mon, 26 Nov 2007 07:17:19 +0000 (07:17 +0000)]
Fix another bug that was causing siod to fail.

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

16 years agoFix a silly bug that Nicholas noticed.
Owen Anderson [Mon, 26 Nov 2007 03:27:38 +0000 (03:27 +0000)]
Fix a silly bug that Nicholas noticed.

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

16 years agoAllow GVN to eliminate read-only function calls when it can detect that they are...
Owen Anderson [Mon, 26 Nov 2007 02:26:36 +0000 (02:26 +0000)]
Allow GVN to eliminate read-only function calls when it can detect that they are redundant.

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

16 years agoRemove another leak. Due to some reason AliasSetTracker didn't had any dtor...
Anton Korobeynikov [Sun, 25 Nov 2007 23:52:02 +0000 (23:52 +0000)]
Remove another leak. Due to some reason AliasSetTracker didn't had any dtor...

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

16 years agoAdd new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops.
Nick Lewycky [Sun, 25 Nov 2007 22:41:31 +0000 (22:41 +0000)]
Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops.

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

16 years agoImplement PR1822
Chris Lattner [Sun, 25 Nov 2007 21:27:53 +0000 (21:27 +0000)]
Implement PR1822

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

16 years agoRemove a leak. Destroy LoopInfoBase object. releaseMemory() is actually called in...
Anton Korobeynikov [Sun, 25 Nov 2007 18:41:39 +0000 (18:41 +0000)]
Remove a leak. Destroy LoopInfoBase object. releaseMemory() is actually called in its dtor.

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

16 years agoFix PR1816. If a bitcast of a function only exists because of a
Duncan Sands [Sun, 25 Nov 2007 14:10:56 +0000 (14:10 +0000)]
Fix PR1816.  If a bitcast of a function only exists because of a
trivial difference in function attributes, allow calls to it to
be converted to direct calls.  Based on a patch by Török Edwin.
While there, move the various lists of mutually incompatible
parameters etc out of the verifier and into ParameterAttributes.h.

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

16 years agoDon't ignore files that are no longer in use.
Reid Spencer [Sun, 25 Nov 2007 07:05:05 +0000 (07:05 +0000)]
Don't ignore files that are no longer in use.

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

16 years agoFix a long standing deficiency in the X86 backend: we would
Chris Lattner [Sun, 25 Nov 2007 00:24:49 +0000 (00:24 +0000)]
Fix a long standing deficiency in the X86 backend: we would
sometimes emit "zero" and "all one" vectors multiple times,
for example:

_test2:
pcmpeqd %mm0, %mm0
movq %mm0, _M1
pcmpeqd %mm0, %mm0
movq %mm0, _M2
ret

instead of:

_test2:
pcmpeqd %mm0, %mm0
movq %mm0, _M1
movq %mm0, _M2
ret

This patch fixes this by always arranging for zero/one vectors
to be defined as v4i32 or v2i32 (SSE/MMX) instead of letting them be
any random type.  This ensures they get trivially CSE'd on the dag.
This fix is also important for LegalizeDAGTypes, as it gets unhappy
when the x86 backend wants BUILD_VECTOR(i64 0) to be legal even when
'i64' isn't legal.

This patch makes the following changes:

1) X86TargetLowering::LowerBUILD_VECTOR now lowers 0/1 vectors into
   their canonical types.
2) The now-dead patterns are removed from the SSE/MMX .td files.
3) All the patterns in the .td file that referred to immAllOnesV or
   immAllZerosV in the wrong form now use *_bc to match them with a
   bitcast wrapped around them.
4) X86DAGToDAGISel::SelectScalarSSELoad is generalized to handle
   bitcast'd zero vectors, which simplifies the code actually.
5) getShuffleVectorZeroOrUndef is updated to generate a shuffle that
   is legal, instead of generating one that is illegal and expecting
   a later legalize pass to clean it up.
6) isZeroShuffle is generalized to handle bitcast of zeros.
7) several other minor tweaks.

This patch is definite goodness, but has the potential to cause random
code quality regressions.  Please be on the lookout for these and let
me know if they happen.

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

16 years agoImplement expand support for MERGE_VALUEs that only produces one result.
Chris Lattner [Sat, 24 Nov 2007 19:12:15 +0000 (19:12 +0000)]
Implement expand support for MERGE_VALUEs that only produces one result.

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

16 years agoadd a immAllZerosV_bc pattern fragment for consistency with others.
Chris Lattner [Sat, 24 Nov 2007 19:02:07 +0000 (19:02 +0000)]
add a immAllZerosV_bc pattern fragment for consistency with others.

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

16 years agoremove bogus assertion that broke CodeGen/Generic/cast-fp.ll on x86
Chris Lattner [Sat, 24 Nov 2007 18:37:20 +0000 (18:37 +0000)]
remove bogus assertion that broke CodeGen/Generic/cast-fp.ll on x86
among others.

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

16 years agoImplement support for custom legalization in DAGTypeLegalizer::ExpandOperand.
Chris Lattner [Sat, 24 Nov 2007 18:11:42 +0000 (18:11 +0000)]
Implement support for custom legalization in DAGTypeLegalizer::ExpandOperand.
Improve a comment.
Unbreak Duncan's carefully written path compression where I didn't realize
what was happening!

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

16 years agoSeveral changes:
Chris Lattner [Sat, 24 Nov 2007 07:07:01 +0000 (07:07 +0000)]
Several changes:
1) Change the interface to TargetLowering::ExpandOperationResult to
   take and return entire NODES that need a result expanded, not just
   the value.  This allows us to handle things like READCYCLECOUNTER,
   which returns two values.
2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES.
3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new
   ExpandOperationResult.  This makes the result simpler and fully
   general.
4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes.
5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM
   i64 shifts, allowing them to work with LegalizeDAGTypes.
6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT,
   allowing them to work with LegalizeDAGTypes.

LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when
type legalization in LegalizeDAG is ifdef'd out.

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

16 years agoadd a note
Chris Lattner [Sat, 24 Nov 2007 06:13:33 +0000 (06:13 +0000)]
add a note

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

16 years agoupgrade this test
Chris Lattner [Sat, 24 Nov 2007 05:39:29 +0000 (05:39 +0000)]
upgrade this test

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

16 years agoFix PR1816, by correcting the broken definition of APInt::countTrailingZeros.
Chris Lattner [Fri, 23 Nov 2007 22:42:31 +0000 (22:42 +0000)]
Fix PR1816, by correcting the broken definition of APInt::countTrailingZeros.

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

16 years agosimplify some code.
Chris Lattner [Fri, 23 Nov 2007 22:36:49 +0000 (22:36 +0000)]
simplify some code.

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

16 years agoFix APInt::countTrailingZeros to return BitWidth if the input is zero instead of...
Chris Lattner [Fri, 23 Nov 2007 22:36:25 +0000 (22:36 +0000)]
Fix APInt::countTrailingZeros to return BitWidth if the input is zero instead of returning some random large number.

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

16 years agoadd a comment.
Chris Lattner [Fri, 23 Nov 2007 22:35:18 +0000 (22:35 +0000)]
add a comment.

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

16 years agosplice some lines together, no functionality change.
Chris Lattner [Fri, 23 Nov 2007 22:34:59 +0000 (22:34 +0000)]
splice some lines together, no functionality change.

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

16 years ago!< is >=, not >. Thanks to Max Hailperin for pointing this out!
Chris Lattner [Fri, 23 Nov 2007 22:19:33 +0000 (22:19 +0000)]
!< is >=, not >.  Thanks to Max Hailperin for pointing this out!

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

16 years agoDing dong, the DoesntAccessMemoryFns and
Duncan Sands [Fri, 23 Nov 2007 19:30:27 +0000 (19:30 +0000)]
Ding dong, the DoesntAccessMemoryFns and
OnlyReadsMemoryFns tables are dead!  We
get more, and more accurate, information
from gcc via the readnone and readonly
function attributes.

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

16 years agoRemove some logic I thoughtlessly copied over
Duncan Sands [Fri, 23 Nov 2007 09:10:17 +0000 (09:10 +0000)]
Remove some logic I thoughtlessly copied over
from the old ADCE implementation (there it was
correct because the transform was being done
for read-only functions).

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

16 years agoFix a bug where we'd try to find a scev value for a bitcast operand,
Chris Lattner [Fri, 23 Nov 2007 08:46:22 +0000 (08:46 +0000)]
Fix a bug where we'd try to find a scev value for a bitcast operand,
even though the bitcast operand did not have integer type.  This fixes
PR1814.

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

16 years agoFix PR1817.
Chris Lattner [Thu, 22 Nov 2007 23:47:13 +0000 (23:47 +0000)]
Fix PR1817.

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

16 years agoadd some static icmpinst predicates.
Chris Lattner [Thu, 22 Nov 2007 23:43:29 +0000 (23:43 +0000)]
add some static icmpinst predicates.

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

16 years agoadd missing #include
Chris Lattner [Thu, 22 Nov 2007 23:19:05 +0000 (23:19 +0000)]
add missing #include

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