oota-llvm.git
17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 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

17 years agoRevise per review comments.
Dale Johannesen [Sun, 26 Aug 2007 01:18:27 +0000 (01:18 +0000)]
Revise per review comments.

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

17 years agoAdd APFloat interface to ConstantFPSDNode. Change
Dale Johannesen [Sat, 25 Aug 2007 22:10:57 +0000 (22:10 +0000)]
Add APFloat interface to ConstantFPSDNode.  Change
over uses in DAGCombiner.  Fix interfaces to work
with APFloats.

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

17 years agoMove exit condition and exit branch from exiting block into loop header and dominator...
Devang Patel [Sat, 25 Aug 2007 02:39:24 +0000 (02:39 +0000)]
Move exit condition and exit branch from exiting block into loop header and dominator info. This avoid execution of dead iteration. Loop is already filter in the beginning such that this change is safe.

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

17 years agoConstant split values needs upper bound and lower bound check, just like any other...
Devang Patel [Sat, 25 Aug 2007 01:09:14 +0000 (01:09 +0000)]
Constant split values needs upper bound and lower bound check, just like any other split value.

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

17 years agoAllow target constants to be illegal types. The target should
Chris Lattner [Sat, 25 Aug 2007 01:00:22 +0000 (01:00 +0000)]
Allow target constants to be illegal types.  The target should
know how to handle them.  This fixes
test/CodeGen/Generic/asm-large-immediate.ll

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

17 years agoWhile calculating upper loop bound for first loop and lower loop bound for second...
Devang Patel [Sat, 25 Aug 2007 00:56:38 +0000 (00:56 +0000)]
While calculating upper loop bound for first loop and lower loop bound for second loop, take care of edge cases.

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

17 years agoTeach the dag scheduler to handle inline asm nodes with multi-value immediate operands.
Chris Lattner [Sat, 25 Aug 2007 00:53:07 +0000 (00:53 +0000)]
Teach the dag scheduler to handle inline asm nodes with multi-value immediate operands.

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

17 years agoThe personality function might need to be declared as:
Bill Wendling [Sat, 25 Aug 2007 00:51:55 +0000 (00:51 +0000)]
The personality function might need to be declared as:

    .set  Lset0,___gxx_personality_v0-.
    .long Lset0

on some targets. Make it so!

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

17 years agorename isOperandValidForConstraint to LowerAsmOperandForConstraint,
Chris Lattner [Sat, 25 Aug 2007 00:47:38 +0000 (00:47 +0000)]
rename isOperandValidForConstraint to LowerAsmOperandForConstraint,
changing the interface to allow for future changes.

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

17 years agoComment out declaration of operator== (undefined).
Dale Johannesen [Sat, 25 Aug 2007 00:40:41 +0000 (00:40 +0000)]
Comment out declaration of operator== (undefined).

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

17 years agoTest
Neil Booth [Sat, 25 Aug 2007 00:36:22 +0000 (00:36 +0000)]
Test

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

17 years agoAdd self
Neil Booth [Sat, 25 Aug 2007 00:31:24 +0000 (00:31 +0000)]
Add self

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

17 years agoRename llvm-gcc4 to llvm-gcc.
Tanya Lattner [Fri, 24 Aug 2007 23:23:23 +0000 (23:23 +0000)]
Rename llvm-gcc4 to llvm-gcc.

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

17 years agoPoison APFloat::operator==. Replace existing uses with bitwiseIsEqual.
Dale Johannesen [Fri, 24 Aug 2007 22:09:56 +0000 (22:09 +0000)]
Poison APFloat::operator==.  Replace existing uses with bitwiseIsEqual.
This means backing out the preceding change to Constants.cpp, alas.

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

17 years agoUse APFloat internally for ConstantFPSDNode.
Dale Johannesen [Fri, 24 Aug 2007 20:59:15 +0000 (20:59 +0000)]
Use APFloat internally for ConstantFPSDNode.

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

17 years agosink clone() down the class hierarchy from CmpInst into ICmpInst/FCmpInst.
Chris Lattner [Fri, 24 Aug 2007 20:48:18 +0000 (20:48 +0000)]
sink clone() down the class hierarchy from CmpInst into ICmpInst/FCmpInst.
This eliminates a conditional on that path, and ensures ICmpInst/FCmpInst
both have an out-of-line virtual method to home the class.

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

17 years agoFix regression that I caused yesterday night while adding logic to select appropriate...
Devang Patel [Fri, 24 Aug 2007 19:32:26 +0000 (19:32 +0000)]
Fix regression that I caused yesterday night while adding logic to select appropriate split condition branch.

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

17 years agoDisable EH generation until PPC works 100%.
Chris Lattner [Fri, 24 Aug 2007 16:00:15 +0000 (16:00 +0000)]
Disable EH generation until PPC works 100%.

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

17 years agoadd a note
Chris Lattner [Fri, 24 Aug 2007 15:17:59 +0000 (15:17 +0000)]
add a note

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