oota-llvm.git
16 years agoSplit eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed...
Anton Korobeynikov [Fri, 7 Sep 2007 11:39:35 +0000 (11:39 +0000)]
Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register
liveins and we let frontend solve type issue, not lowering code :)

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

16 years agoTest for PR1641.
Bill Wendling [Fri, 7 Sep 2007 08:30:09 +0000 (08:30 +0000)]
Test for PR1641.

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

16 years agoDon't zap back to back volatile load/stores
Chris Lattner [Fri, 7 Sep 2007 05:33:03 +0000 (05:33 +0000)]
Don't zap back to back volatile load/stores

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

16 years agoAdd lengthof and endof templates that hide a lot of sizeof computations.
Owen Anderson [Fri, 7 Sep 2007 04:06:50 +0000 (04:06 +0000)]
Add lengthof and endof templates that hide a lot of sizeof computations.
Patch by Sterling Stein!

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

16 years agoConstify to catch bugs.
David Greene [Thu, 6 Sep 2007 19:46:46 +0000 (19:46 +0000)]
Constify to catch bugs.

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

16 years agoNext round of APFloat changes.
Dale Johannesen [Thu, 6 Sep 2007 18:13:44 +0000 (18:13 +0000)]
Next round of APFloat changes.
Use APFloat in UpgradeParser and AsmParser.
Change all references to ConstantFP to use the
APFloat interface rather than double.  Remove
the ConstantFP double interfaces.
Use APFloat functions for constant folding arithmetic
and comparisons.
(There are still way too many places APFloat is
just a wrapper around host float/double, but we're
getting there.)

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

16 years agoProper handle case, when aliasee is external weak symbol referenced only by alias...
Anton Korobeynikov [Thu, 6 Sep 2007 17:21:48 +0000 (17:21 +0000)]
Proper handle case, when aliasee is external weak symbol referenced only by alias itself.
Also, fix a case, when target doesn't have weak symbols supported.

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

16 years agoAdd instruction dump output. This helps find bugs.
David Greene [Thu, 6 Sep 2007 16:36:39 +0000 (16:36 +0000)]
Add instruction dump output.  This helps find bugs.

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

16 years agoPluggable coalescers inplementation.
David Greene [Thu, 6 Sep 2007 16:18:45 +0000 (16:18 +0000)]
Pluggable coalescers inplementation.

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

16 years agoUse isTrueWhenEqual. Thanks Chris!
Nick Lewycky [Thu, 6 Sep 2007 02:40:25 +0000 (02:40 +0000)]
Use isTrueWhenEqual. Thanks Chris!

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

16 years agoWhen the two operands of an icmp are equal, there are five possible predicates
Nick Lewycky [Thu, 6 Sep 2007 01:10:22 +0000 (01:10 +0000)]
When the two operands of an icmp are equal, there are five possible predicates
that would make the icmp true. Fixes PR1637.

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

16 years agoFix a memory leak.
Evan Cheng [Thu, 6 Sep 2007 01:07:24 +0000 (01:07 +0000)]
Fix a memory leak.

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

16 years agoFix a bug in X86InstrInfo::convertToThreeAddress that caused it to codegen:
Evan Cheng [Thu, 6 Sep 2007 00:14:41 +0000 (00:14 +0000)]
Fix a bug in X86InstrInfo::convertToThreeAddress that caused it to codegen:
leal    (,%rcx,8), %rcx
It should be
leal    (,%rcx,8), %ecx

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

16 years agoLVXL and STVXL are also a load and store resp.
Bill Wendling [Wed, 5 Sep 2007 23:47:12 +0000 (23:47 +0000)]
LVXL and STVXL are also a load and store resp.

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

16 years agoAccidentially left this out.
Evan Cheng [Wed, 5 Sep 2007 21:58:18 +0000 (21:58 +0000)]
Accidentially left this out.

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

16 years agoUse pool allocator for all the VNInfo's to improve memory access locality. This reduc...
Evan Cheng [Wed, 5 Sep 2007 21:46:51 +0000 (21:46 +0000)]
Use pool allocator for all the VNInfo's to improve memory access locality. This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks.

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

16 years agoAdded Reset() to free all allocated memory regions and reset state to be the same...
Evan Cheng [Wed, 5 Sep 2007 21:41:34 +0000 (21:41 +0000)]
Added Reset() to free all allocated memory regions and reset state to be the same as right after ctor.

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

16 years agoMissing break. Patch by Wojciech Matyjewicz.
Evan Cheng [Wed, 5 Sep 2007 21:36:14 +0000 (21:36 +0000)]
Missing break. Patch by Wojciech Matyjewicz.

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

16 years agoFix mod so it actually works. Fix conversions to
Dale Johannesen [Wed, 5 Sep 2007 20:39:49 +0000 (20:39 +0000)]
Fix mod so it actually works.  Fix conversions to
native types to handle denormals correctly.

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

16 years agoForgot to obey 80 column rule. Fixing that.
Chuck Rose III [Wed, 5 Sep 2007 20:36:41 +0000 (20:36 +0000)]
Forgot to obey 80 column rule.  Fixing that.

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

16 years agoChange all floating constants that are not exactly
Dale Johannesen [Wed, 5 Sep 2007 17:50:36 +0000 (17:50 +0000)]
Change all floating constants that are not exactly
representable to use hex format.

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

16 years agoAdded default parameters to GetElementPtrInstr constructor call. Visual Studio 2k5...
Chuck Rose III [Wed, 5 Sep 2007 16:54:38 +0000 (16:54 +0000)]
Added default parameters to GetElementPtrInstr constructor call.  Visual Studio 2k5 was getting confused and was unable to compile it.  Suspected compiler error.

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

16 years agoDue to label merging, the last label for an invoke
Duncan Sands [Wed, 5 Sep 2007 14:12:46 +0000 (14:12 +0000)]
Due to label merging, the last label for an invoke
may be the same as the first label for the following
invoke.  Remove a micro-optimization which was wrong
in this case.

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

16 years agoTestcases for PR1628.
Duncan Sands [Wed, 5 Sep 2007 11:53:04 +0000 (11:53 +0000)]
Testcases for PR1628.

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

16 years agoFix PR1628. When exception handling is turned on,
Duncan Sands [Wed, 5 Sep 2007 11:27:52 +0000 (11:27 +0000)]
Fix PR1628.  When exception handling is turned on,
labels are generated bracketing each call (not just
invokes).  This is used to generate entries in
the exception table required by the C++ personality.
However it gets in the way of tail-merging.  This
patch solves the problem by no longer placing labels
around ordinary calls.  Instead we generate entries
in the exception table that cover every instruction
in the function that wasn't covered by an invoke
range (the range given by the labels around the invoke).
As an optimization, such entries are only generated for
parts of the function that contain a call, since for
the moment those are the only instructions that can
throw an exception [1].  As a happy consequence, we
now get a smaller exception table, since the same
region can cover many calls.  While there, I also
implemented folding of invoke ranges - successive
ranges are merged when safe to do so.  Finally, if
a selector contains only a cleanup, there's a special
shorthand for it - place a 0 in the call-site entry.
I implemented this while there.  As a result, the
exception table output (excluding filters) is now
optimal - it cannot be made smaller [2].  The
problem with throw filters is that folding them
optimally is hard, and the benefit of folding them is
minimal.

[1] I tested that having trapping instructions (eg
divide by zero) in such a region doesn't cause trouble.
[2] It could be made smaller with the help of higher
layers, eg by having branch folding reorder basic blocks
ending in invokes with the same landing pad so they
follow each other.  I don't know if this is worth doing.

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

16 years agoAdd the 64-bit versions of the DS* Altivec instructions.
Bill Wendling [Wed, 5 Sep 2007 04:05:20 +0000 (04:05 +0000)]
Add the 64-bit versions of the DS* Altivec instructions.

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

16 years agoEnable loop index split pass.
Devang Patel [Tue, 4 Sep 2007 20:46:58 +0000 (20:46 +0000)]
Enable loop index split pass.

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

16 years agoInsert cloned loop basic blocks before original loop header.
Devang Patel [Tue, 4 Sep 2007 20:46:35 +0000 (20:46 +0000)]
Insert cloned loop basic blocks before original loop header.

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

16 years agoFix for PR1632. EHSELECTION always produces a i32 value.
Evan Cheng [Tue, 4 Sep 2007 20:39:26 +0000 (20:39 +0000)]
Fix for PR1632. EHSELECTION always produces a i32 value.

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

16 years agoFix for PR1613: added 64-bit rotate left PPC instructions and patterns.
Evan Cheng [Tue, 4 Sep 2007 20:20:29 +0000 (20:20 +0000)]
Fix for PR1613: added 64-bit rotate left PPC instructions and patterns.

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

16 years agoAlways check the type of node. This prevents situations such as selecting 32-bit...
Evan Cheng [Tue, 4 Sep 2007 20:18:28 +0000 (20:18 +0000)]
Always check the type of node. This prevents situations such as selecting 32-bit rotate target instruction for a 64-bit node when 64-bit pattern is missing.

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

16 years agoUpdate generated files.
David Greene [Tue, 4 Sep 2007 18:46:50 +0000 (18:46 +0000)]
Update generated files.

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

16 years agofix reversal bug in preceding checkin
Dale Johannesen [Tue, 4 Sep 2007 17:32:27 +0000 (17:32 +0000)]
fix reversal bug in preceding checkin

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

16 years agoRevert this because the interface hasn't been updated yet.
David Greene [Tue, 4 Sep 2007 17:15:07 +0000 (17:15 +0000)]
Revert this because the interface hasn't been updated yet.

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

16 years agoFix typo.
David Greene [Tue, 4 Sep 2007 17:00:44 +0000 (17:00 +0000)]
Fix typo.

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

16 years agoMac OS X X86-64 ABI is same as the standard.
Evan Cheng [Tue, 4 Sep 2007 16:44:41 +0000 (16:44 +0000)]
Mac OS X X86-64 ABI is same as the standard.

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

16 years agoUpdate GEP constructors to use an iterator interface to fix
David Greene [Tue, 4 Sep 2007 15:46:09 +0000 (15:46 +0000)]
Update GEP constructors to use an iterator interface to fix
GLIBCXX_DEBUG issues.

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

16 years agoReapply r41578 with proper fix
Anton Korobeynikov [Mon, 3 Sep 2007 00:36:06 +0000 (00:36 +0000)]
Reapply r41578 with proper fix

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

16 years agoSilence warning while compiling with gcc 4.2
Anton Korobeynikov [Sun, 2 Sep 2007 22:11:14 +0000 (22:11 +0000)]
Silence warning while compiling with gcc 4.2

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

16 years agoEmit proper "secrel" directive, where possible. This fixes invalid asm syntax of...
Anton Korobeynikov [Sun, 2 Sep 2007 22:07:21 +0000 (22:07 +0000)]
Emit proper "secrel" directive, where possible. This fixes invalid asm syntax of debug info on mingw32. Also, cleanup
some stuff.

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

16 years agoMore tweaks to improve compile time.
Evan Cheng [Sat, 1 Sep 2007 02:03:17 +0000 (02:03 +0000)]
More tweaks to improve compile time.

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

16 years agoFix a gcroot lowering bug.
Evan Cheng [Sat, 1 Sep 2007 02:00:51 +0000 (02:00 +0000)]
Fix a gcroot lowering bug.

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

16 years agoOops, should be part of 41664; won't work very well without this piece.
Dale Johannesen [Fri, 31 Aug 2007 23:35:31 +0000 (23:35 +0000)]
Oops, should be part of 41664; won't work very well without this piece.

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

16 years agoAdd mod, copysign, abs operations to APFloat.
Dale Johannesen [Fri, 31 Aug 2007 23:34:27 +0000 (23:34 +0000)]
Add mod, copysign, abs operations to APFloat.
Implement some constant folding in SelectionDAG and
DAGCombiner using APFloat.  Remove double versions
of constructor and getValue from ConstantFPSDNode.

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

16 years agostd::map -> DenseMap for slight compile time benefit.
Evan Cheng [Fri, 31 Aug 2007 21:23:06 +0000 (21:23 +0000)]
std::map -> DenseMap for slight compile time benefit.

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

16 years agoAllow the configure options to be set according to the llvm-top options.
Reid Spencer [Fri, 31 Aug 2007 19:53:42 +0000 (19:53 +0000)]
Allow the configure options to be set according to the llvm-top options.
Patch improved from one by Holger Schurig.

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

16 years agoRevise per review of previous patch.
Dale Johannesen [Fri, 31 Aug 2007 17:03:33 +0000 (17:03 +0000)]
Revise per review of previous patch.

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

16 years agoInitial support for calling functions with byval arguments on x86-64
Rafael Espindola [Fri, 31 Aug 2007 15:06:30 +0000 (15:06 +0000)]
Initial support for calling functions with byval arguments on x86-64

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

16 years agoAlign i64 and f64 at 8 byte on x86-64.
Rafael Espindola [Fri, 31 Aug 2007 12:23:58 +0000 (12:23 +0000)]
Align i64 and f64 at 8 byte on x86-64.
This is mandated table 3.1 at
http://www.x86-64.org/documentation/abi.pdf

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

16 years agoRemove an unnecessary element, saving 4 bytes per LiveInterval.
Evan Cheng [Fri, 31 Aug 2007 08:26:44 +0000 (08:26 +0000)]
Remove an unnecessary element, saving 4 bytes per LiveInterval.

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

16 years agoUse std::map instead of a (potentially very sparse) array to track val# defined by...
Evan Cheng [Fri, 31 Aug 2007 08:04:17 +0000 (08:04 +0000)]
Use std::map instead of a (potentially very sparse) array to track val# defined by copy from the other live range. Minor compile time win when number of val# is large.

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

16 years agoUpdate test case to reflect Dale's change.
Evan Cheng [Fri, 31 Aug 2007 06:29:32 +0000 (06:29 +0000)]
Update test case to reflect Dale's change.

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

16 years agoEnhance APFloat to retain bits of NaNs (fixes oggenc).
Dale Johannesen [Fri, 31 Aug 2007 04:03:46 +0000 (04:03 +0000)]
Enhance APFloat to retain bits of NaNs (fixes oggenc).
Use APFloat interfaces for more references, mostly
of ConstantFPSDNode.

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

16 years agoInstruction formats added used to generate multiply instructions of V5TE.
Raul Herbster [Thu, 30 Aug 2007 23:34:14 +0000 (23:34 +0000)]
Instruction formats added used to generate multiply instructions of V5TE.

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

16 years agoUnused relocation type reloc_arm_absolute removed.
Raul Herbster [Thu, 30 Aug 2007 23:31:35 +0000 (23:31 +0000)]
Unused relocation type reloc_arm_absolute removed.

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

16 years agoComments added. It now generates V5TE multiply instructions. However, it is still...
Raul Herbster [Thu, 30 Aug 2007 23:29:26 +0000 (23:29 +0000)]
Comments added. It now generates V5TE multiply instructions. However, it is still necessary to model PUWLSH bits more clearly.

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

16 years agoARM instruction table was modified by adding information to generate multiply instruc...
Raul Herbster [Thu, 30 Aug 2007 23:25:47 +0000 (23:25 +0000)]
ARM instruction table was modified by adding information to generate multiply instruction of V5TE.

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

16 years agoJITInfo now resolves function addrs and also relocations. It always emits a stub.
Raul Herbster [Thu, 30 Aug 2007 23:21:27 +0000 (23:21 +0000)]
JITInfo now resolves function addrs and also relocations. It always emits a stub.

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

16 years agoAdded Graphviz escaping for the '|' character.
Ted Kremenek [Thu, 30 Aug 2007 17:01:41 +0000 (17:01 +0000)]
Added Graphviz escaping for the '|' character.

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

16 years agoDo not run on darwin.
Tanya Lattner [Thu, 30 Aug 2007 16:07:20 +0000 (16:07 +0000)]
Do not run on darwin.

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

16 years agoAdded support to fold X86 load / store instructions. This allow rematerialized loads...
Evan Cheng [Thu, 30 Aug 2007 05:54:07 +0000 (05:54 +0000)]
Added support to fold X86 load / store instructions. This allow rematerialized loads to be folded into their uses.

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

16 years agoTry fold re-materialized load instructions into its uses.
Evan Cheng [Thu, 30 Aug 2007 05:53:02 +0000 (05:53 +0000)]
Try fold re-materialized load instructions into its uses.

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

16 years agoAdd a variant of foldMemoryOperand to fold any load / store, not just load / store...
Evan Cheng [Thu, 30 Aug 2007 05:52:20 +0000 (05:52 +0000)]
Add a variant of foldMemoryOperand to fold any load / store, not just load / store from / to stack slots.

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

16 years agoAdded CreateFrameIndex to create a FrameIndex MachineOperand without a MachineInstr.
Evan Cheng [Thu, 30 Aug 2007 05:50:32 +0000 (05:50 +0000)]
Added CreateFrameIndex to create a FrameIndex MachineOperand without a MachineInstr.

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

16 years agoMark load instructions with isLoad = 1.
Evan Cheng [Thu, 30 Aug 2007 05:49:43 +0000 (05:49 +0000)]
Mark load instructions with isLoad = 1.

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

16 years agoUse i64 on a PPC64 machine
Bill Wendling [Thu, 30 Aug 2007 00:59:19 +0000 (00:59 +0000)]
Use i64 on a PPC64 machine

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

16 years agoChange LegalFPImmediates to use APFloat.
Dale Johannesen [Thu, 30 Aug 2007 00:23:21 +0000 (00:23 +0000)]
Change LegalFPImmediates to use APFloat.
Add APFloat interfaces to ConstantFP, SelectionDAG.
Fix integer bit in double->APFloat conversion.
Convert LegalizeDAG to use APFloat interface in
ConstantFPSDNode uses.

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

16 years agoFix use of declaration inside case block
Anton Korobeynikov [Wed, 29 Aug 2007 23:18:48 +0000 (23:18 +0000)]
Fix use of declaration inside case block

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

16 years agoChange LiveRange so it keeps a pointer to the VNInfo rather than an index.
Evan Cheng [Wed, 29 Aug 2007 20:45:00 +0000 (20:45 +0000)]
Change LiveRange so it keeps a pointer to the VNInfo rather than an index.
Changes related modules so VNInfo's are not copied. This decrease
copy coalescing time by 45% and overall compilation time by 10% on siod.

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

16 years agoLower FRAME_TO_ADDR_OFFSET to zero by default (if not custom lowered)
Anton Korobeynikov [Wed, 29 Aug 2007 19:28:29 +0000 (19:28 +0000)]
Lower FRAME_TO_ADDR_OFFSET to zero by default (if not custom lowered)

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

16 years agoMove getX86RegNum into X86RegisterInfo and use it
Duncan Sands [Wed, 29 Aug 2007 19:01:20 +0000 (19:01 +0000)]
Move getX86RegNum into X86RegisterInfo and use it
in the trampoline lowering.  Lookup the jump and
mov opcodes for the trampoline rather than hard
coding them.

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

16 years agoAlphabetize Raul's entry.
Raul Herbster [Wed, 29 Aug 2007 18:21:29 +0000 (18:21 +0000)]
Alphabetize Raul's entry.

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

16 years agoNew contributor added
Raul Herbster [Wed, 29 Aug 2007 16:51:52 +0000 (16:51 +0000)]
New contributor added

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

16 years agoUpdating configure script to enable MIPS.
Tanya Lattner [Wed, 29 Aug 2007 16:38:16 +0000 (16:38 +0000)]
Updating configure script to enable MIPS.

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

16 years agoSilence implicit 64->32-bit conversion warnings.
Chris Lattner [Wed, 29 Aug 2007 16:32:50 +0000 (16:32 +0000)]
Silence implicit 64->32-bit conversion warnings.

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

16 years agogetMinSignedBits needs to take into consider the sign bit when the value is positive.
Chris Lattner [Wed, 29 Aug 2007 16:21:18 +0000 (16:21 +0000)]
getMinSignedBits needs to take into consider the sign bit when the value is positive.

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

16 years agoupdate these
Chris Lattner [Wed, 29 Aug 2007 16:15:23 +0000 (16:15 +0000)]
update these

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

16 years agoAdd an option, -view-sunit-dags, for viewing the actual SUnit DAGs used by
Dan Gohman [Tue, 28 Aug 2007 20:32:58 +0000 (20:32 +0000)]
Add an option, -view-sunit-dags, for viewing the actual SUnit DAGs used by
scheduling.

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

16 years agoUpdate win32 VStudio project files to keep pace with recently added and deleted files
Chuck Rose III [Tue, 28 Aug 2007 18:59:02 +0000 (18:59 +0000)]
Update win32 VStudio project files to keep pace with recently added and deleted files

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

16 years agoRecover most of the compile time regression due to recent live interval changes.
Evan Cheng [Tue, 28 Aug 2007 08:28:51 +0000 (08:28 +0000)]
Recover most of the compile time regression due to recent live interval changes.
1. Eliminate the costly live interval "swapping".
2. Change ValueNumberInfo container from SmallVector to std::vector. The former
   performs slowly when the vector size is very large.

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

16 years agoAdded method to get Mips register numbers
Bruno Cardoso Lopes [Tue, 28 Aug 2007 05:13:42 +0000 (05:13 +0000)]
Added method to get Mips register numbers
Changed the stack frame layout, StackGrowsUp fits better to Mips strange stack.
Stack offset calculation bug fixed!

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

16 years agoChanged stack allocation On LowerFORMAL_ARGUMENTS.
Bruno Cardoso Lopes [Tue, 28 Aug 2007 05:08:16 +0000 (05:08 +0000)]
Changed stack allocation On LowerFORMAL_ARGUMENTS.
Added comments about new stack allocation.
Expand SelectCC for i32 results

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

16 years agoMask directive completed with CalleeSave info
Bruno Cardoso Lopes [Tue, 28 Aug 2007 05:06:17 +0000 (05:06 +0000)]
Mask directive completed with CalleeSave info
Comments for Mips directives added.

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

16 years agoAdded methods to record SPOffsets from LowerFORMAL_ARGUMENTS
Bruno Cardoso Lopes [Tue, 28 Aug 2007 05:04:41 +0000 (05:04 +0000)]
Added methods to record SPOffsets from LowerFORMAL_ARGUMENTS

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

16 years agoCut off crazy computation. This helps PR1622 slightly.
Chris Lattner [Tue, 28 Aug 2007 04:23:55 +0000 (04:23 +0000)]
Cut off crazy computation.  This helps PR1622 slightly.

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

16 years agoUse simpler test to filter loops.
Devang Patel [Mon, 27 Aug 2007 21:34:31 +0000 (21:34 +0000)]
Use simpler test to filter loops.

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

16 years agoAdd explicit triples to avoid default behavior that varies by host.
Dan Gohman [Mon, 27 Aug 2007 20:54:48 +0000 (20:54 +0000)]
Add explicit triples to avoid default behavior that varies by host.

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

16 years agoUpdate InvokeInst to work like CallInst
David Greene [Mon, 27 Aug 2007 19:04:21 +0000 (19:04 +0000)]
Update InvokeInst to work like CallInst

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

16 years agoAdd a comment about using libc memset/memcpy or generating inline code.
Rafael Espindola [Mon, 27 Aug 2007 17:48:26 +0000 (17:48 +0000)]
Add a comment about using libc memset/memcpy or generating inline code.

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

16 years agoRemove this test as it is too hard to fix after the
Duncan Sands [Mon, 27 Aug 2007 17:08:14 +0000 (17:08 +0000)]
Remove this test as it is too hard to fix after the
latest EH changes, and in any case it is hard to
imagine how the original bug could be reintroduced.

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

16 years agoFix this test: llvm-gcc-4.2 optimizes almost everything away,
Duncan Sands [Mon, 27 Aug 2007 16:47:32 +0000 (16:47 +0000)]
Fix this test: llvm-gcc-4.2 optimizes almost everything away,
resulting in zero matches, while llvm-gcc-4.1 manages to
remove one pointless selector changing the number of matches.

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

16 years agoMake DAGCombiner's global alias analysis query more precise in the case
Dan Gohman [Mon, 27 Aug 2007 16:32:11 +0000 (16:32 +0000)]
Make DAGCombiner's global alias analysis query more precise in the case
where both pointers have non-zero offsets.

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

16 years agoNow that we don't output cleanups by default, the action
Duncan Sands [Mon, 27 Aug 2007 16:30:05 +0000 (16:30 +0000)]
Now that we don't output cleanups by default, the action
offset needs to be adjusted in this test.

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

16 years agoIf the source and destination pointers in an llvm.memmove are known
Dan Gohman [Mon, 27 Aug 2007 16:26:13 +0000 (16:26 +0000)]
If the source and destination pointers in an llvm.memmove are known
to not alias each other, it can be translated as an llvm.memcpy.

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

16 years agoChange comments to refer to @malloc and @free instead of %malloc and %free.
Dan Gohman [Mon, 27 Aug 2007 16:11:48 +0000 (16:11 +0000)]
Change comments to refer to @malloc and @free instead of %malloc and %free.

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

16 years agoThere is an impedance matching problem between LLVM and
Duncan Sands [Mon, 27 Aug 2007 15:47:50 +0000 (15:47 +0000)]
There is an impedance matching problem between LLVM and
gcc exception handling: if an exception unwinds through
an invoke, then execution must branch to the invoke's
unwind target.  We previously tried to enforce this by
appending a cleanup action to every selector, however
this does not always work correctly due to an optimization
in the C++ unwinding runtime: if only cleanups would be
run while unwinding an exception, then the program just
terminates without actually executing the cleanups, as
invoke semantics would require.  I was hoping this
wouldn't be a problem, but in fact it turns out to be the
cause of all the remaining failures in the LLVM testsuite
(these also fail with -enable-correct-eh-support, so turning
on -enable-eh didn't make things worse!).  Instead we need
to append a full-blown catch-all to the end of each
selector.  The correct way of doing this depends on the
personality function, i.e. it is language dependent, so
can only be done by gcc.  Thus this patch which generalizes
the eh.selector intrinsic so that it can handle all possible
kinds of action table entries (before it didn't accomodate
cleanups): now 0 indicates a cleanup, and filters have to be
specified using the number of type infos plus one rather than
the number of type infos.  Related gcc patches will cause
Ada to pass a cleanup (0) to force the selector to always
fire, while C++ will use a C++ catch-all (null).

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

16 years agoAdd explicit keywords and remove spurious trailing semicolons.
Dan Gohman [Mon, 27 Aug 2007 14:50:10 +0000 (14:50 +0000)]
Add explicit keywords and remove spurious trailing semicolons.

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

16 years agocall libc memcpy/memset if array size is bigger then threshold.
Rafael Espindola [Mon, 27 Aug 2007 10:18:20 +0000 (10:18 +0000)]
call libc memcpy/memset if array size is bigger then threshold.

Coping 100MB array (after a warmup) shows that glibc 2.6.1 implementation on
x86-64 (core 2) is 30% faster (from 0.270917s to 0.188079s)

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

16 years agoDon't promote volatile loads/stores. This is needed (for example) to handle setjmp...
Anton Korobeynikov [Sun, 26 Aug 2007 21:43:30 +0000 (21:43 +0000)]
Don't promote volatile loads/stores. This is needed (for example) to handle setjmp/longjmp properly.
This fixes PR1520.

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

16 years agoDon't DSe volatile stores.
Owen Anderson [Sun, 26 Aug 2007 21:14:47 +0000 (21:14 +0000)]
Don't DSe volatile stores.

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