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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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