oota-llvm.git
15 years agoImplement the first half of PR3290: if there is a store of an
Chris Lattner [Wed, 7 Jan 2009 08:11:13 +0000 (08:11 +0000)]
Implement the first half of PR3290: if there is a store of an
integer to a (transitive) bitcast the alloca and if that integer
has the full size of the alloca, then it clobbers the whole thing.
Handle this by extracting pieces out of the stored integer and
filing them away in the SROA'd elements.

This triggers fairly frequently because the CFE uses integers to
pass small structs by value and the inliner exposes these.  For
example, in kimwitu++, I see a bunch of these with i64 stores to
"%struct.std::pair<std::_Rb_tree_const_iterator<kc::impl_abstract_phylum*>,bool>"

In 176.gcc I see a few i32 stores to "%struct..0anon".

In the testcase, this is a difference between compiling test1 to:

_test1:
subl $12, %esp
movl 20(%esp), %eax
movl %eax, 4(%esp)
movl 16(%esp), %eax
movl %eax, (%esp)
movl (%esp), %eax
addl 4(%esp), %eax
addl $12, %esp
ret

vs:

_test1:
movl 8(%esp), %eax
addl 4(%esp), %eax
ret

The second half of this will be to handle loads of the same form.

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

15 years agoFactor a bunch of code out into a helper method.
Chris Lattner [Wed, 7 Jan 2009 07:18:45 +0000 (07:18 +0000)]
Factor a bunch of code out into a helper method.

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

15 years agouse continue to simplify code and reduce nesting, no functionality
Chris Lattner [Wed, 7 Jan 2009 06:39:58 +0000 (06:39 +0000)]
use continue to simplify code and reduce nesting, no functionality
change.

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

15 years agoGet TargetData once up front and cache as an ivar instead of
Chris Lattner [Wed, 7 Jan 2009 06:34:28 +0000 (06:34 +0000)]
Get TargetData once up front and cache as an ivar instead of
requerying it all over the place.

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

15 years agoUse the hasAllZeroIndices predicate to simplify some
Chris Lattner [Wed, 7 Jan 2009 06:25:07 +0000 (06:25 +0000)]
Use the hasAllZeroIndices predicate to simplify some
code, no functionality change.

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

15 years agoThe coalescer does not coalesce a virtual register to a physical register if any...
Evan Cheng [Wed, 7 Jan 2009 02:08:57 +0000 (02:08 +0000)]
The coalescer does not coalesce a virtual register to a physical register if any of the physical register's sub-register live intervals overlaps with the virtual register. This is overly conservative. It prevents a extract_subreg from being coalesced away:

v1024 = EDI  // not killed
      =
      = EDI

One possible solution is for the coalescer to examine the sub-register live intervals in the same manner as the physical register. Another possibility is to examine defs and uses (when needed) of sub-registers. Both solutions are too expensive. For now, look for "short virtual intervals" and scan instructions to look for conflict instead.

This is a small win on x86-64. e.g. It shaves 403.gcc by ~80 instructions.

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

15 years agoadd a testcase.
Chris Lattner [Wed, 7 Jan 2009 01:48:08 +0000 (01:48 +0000)]
add a testcase.

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

15 years agoAdd patterns to match conditional moves with loads folded
Dan Gohman [Wed, 7 Jan 2009 01:00:24 +0000 (01:00 +0000)]
Add patterns to match conditional moves with loads folded
into their left operand, rather than their right. Do this
by commuting the operands and inverting the condition.

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

15 years agoAdd load-folding table entries for cmovno too.
Dan Gohman [Wed, 7 Jan 2009 00:44:53 +0000 (00:44 +0000)]
Add load-folding table entries for cmovno too.

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

15 years agoDefine instructions for cmovo and cmovno.
Dan Gohman [Wed, 7 Jan 2009 00:35:10 +0000 (00:35 +0000)]
Define instructions for cmovo and cmovno.

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

15 years agoX86_COND_C and X86_COND_NC are alternate mnemonics for
Dan Gohman [Wed, 7 Jan 2009 00:15:08 +0000 (00:15 +0000)]
X86_COND_C and X86_COND_NC are alternate mnemonics for
X86_COND_B and X86_COND_AE, respectively.

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

15 years agoImprove support for type-generic vector intrinsics by teaching TableGen how
Bob Wilson [Wed, 7 Jan 2009 00:09:01 +0000 (00:09 +0000)]
Improve support for type-generic vector intrinsics by teaching TableGen how
to handle LLVMMatchType intrinsic parameters, and by adding new subclasses
of LLVMMatchType to match vector types with integral elements that are
either twice as wide or half as wide as the elements of the matched type.

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

15 years agoNow that fold-pcmpeqd-0.ll is effectively testing that scheduling helps
Dan Gohman [Tue, 6 Jan 2009 23:48:10 +0000 (23:48 +0000)]
Now that fold-pcmpeqd-0.ll is effectively testing that scheduling helps
avoid the need for spilling, add a new testcase that tests that the
pcmpeqd used for V_SETALLONES is changed to a constant-pool load as
needed.

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

15 years agoRevert r42653 and forward-port the code that lets INC64_32r be
Dan Gohman [Tue, 6 Jan 2009 23:34:46 +0000 (23:34 +0000)]
Revert r42653 and forward-port the code that lets INC64_32r be
converted to LEA64_32r in x86's convertToThreeAddress. This
replaces code like this:
   movl  %esi, %edi
   inc   %edi
with this:
   lea   1(%rsi), %edi
which appears to be beneficial.

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

15 years agoCellSPU:
Scott Michel [Tue, 6 Jan 2009 23:10:38 +0000 (23:10 +0000)]
CellSPU:
- Add preliminary support for v2i32; load/store generates the right code but
  there's a lot work to be done to make this vector type operational.

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

15 years agoFix a bug in ComputeLinearIndex computation handling multi-level
Dan Gohman [Tue, 6 Jan 2009 22:53:52 +0000 (22:53 +0000)]
Fix a bug in ComputeLinearIndex computation handling multi-level
aggregate types. Don't increment the current index after reaching
the end of a struct, as it will already be pointing at
one-past-the end. This fixes PR3288.

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

15 years agoSet up DwarfDebug using DebugInfo API.
Devang Patel [Tue, 6 Jan 2009 21:07:30 +0000 (21:07 +0000)]
Set up DwarfDebug using DebugInfo API.

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

15 years agoForgot that this was needed for Linux. This should fix the builds.
Bill Wendling [Tue, 6 Jan 2009 19:13:55 +0000 (19:13 +0000)]
Forgot that this was needed for Linux. This should fix the builds.

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

15 years agoThe phi construction algorithm used for interval reconstruction is complicated by
Owen Anderson [Tue, 6 Jan 2009 07:53:32 +0000 (07:53 +0000)]
The phi construction algorithm used for interval reconstruction is complicated by
two address instructions.  We need to keep track of things we've processed AS USES
independetly of whether we've processed them as defs.

This fixes all known miscompilations when reconstruction is turned on.

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

15 years agoCellSPU: Update the README
Scott Michel [Tue, 6 Jan 2009 03:51:14 +0000 (03:51 +0000)]
CellSPU: Update the README

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

15 years agoCellSPU:
Scott Michel [Tue, 6 Jan 2009 03:36:14 +0000 (03:36 +0000)]
CellSPU:
- Fix bugs 3194, 3195: i128 load/stores produce correct code (although, we
  need to ensure that i128 is 16-byte aligned in real life), and 128 zero-
  extends are supported.
- New td file: SPU128InstrInfo.td: this is where all new i128 support should
  be put in the future.
- Continue to hammer on i64 operations and test cases; ensure that the only
  remaining problem will be i64 mul.

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

15 years agoDelete this test; it's a duplicate of 2006-07-03-schedulers.ll.
Dan Gohman [Tue, 6 Jan 2009 01:36:23 +0000 (01:36 +0000)]
Delete this test; it's a duplicate of 2006-07-03-schedulers.ll.

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

15 years agoUpdate these argument lists for the isNormalMemory
Dan Gohman [Tue, 6 Jan 2009 01:28:56 +0000 (01:28 +0000)]
Update these argument lists for the isNormalMemory
argument. This doesn't affect current functionality.

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

15 years agoUse a latency value of 0 for the artificial edges inserted by
Dan Gohman [Tue, 6 Jan 2009 01:19:04 +0000 (01:19 +0000)]
Use a latency value of 0 for the artificial edges inserted by
AddPseudoTwoAddrDeps. This lets the scheduling infrastructure
avoid recalculating node heights. In very large testcases this
was a major bottleneck. Thanks to Roman Levenstein for finding
this!

As a side effect, fold-pcmpeqd-0.ll is now scheduled better
and it no longer requires spilling on x86-32.

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

15 years agono need to negate the APInt for 0.
Chris Lattner [Tue, 6 Jan 2009 00:06:25 +0000 (00:06 +0000)]
no need to negate the APInt for 0.

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

15 years agoChange m_ConstantInt and m_SelectCst to take their constant integers
Chris Lattner [Mon, 5 Jan 2009 23:53:12 +0000 (23:53 +0000)]
Change m_ConstantInt and m_SelectCst to take their constant integers
as template arguments instead of as instance variables, exposing more
optimization opportunities to the compiler earlier.

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

15 years agomake m_ConstantInt(int64_t) safely match ConstantInt's that are larger than i64.
Chris Lattner [Mon, 5 Jan 2009 23:45:50 +0000 (23:45 +0000)]
make m_ConstantInt(int64_t) safely match ConstantInt's that are larger than i64.
This fixes an instcombine crash on PR3235.

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

15 years agoConstruct subprogram DIEs using DebugInfo.
Devang Patel [Mon, 5 Jan 2009 23:21:35 +0000 (23:21 +0000)]
Construct subprogram DIEs using DebugInfo.

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

15 years agoConstruct global variable DIEs using DebugInfo.
Devang Patel [Mon, 5 Jan 2009 23:11:11 +0000 (23:11 +0000)]
Construct global variable DIEs using DebugInfo.

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

15 years agoConstruct compile unit dies using DebugInfo.
Devang Patel [Mon, 5 Jan 2009 23:03:32 +0000 (23:03 +0000)]
Construct compile unit dies using DebugInfo.

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

15 years agoFix a thinko in the grammar for thread_local variables.
Dan Gohman [Mon, 5 Jan 2009 23:03:03 +0000 (23:03 +0000)]
Fix a thinko in the grammar for thread_local variables.

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

15 years agoRevert r61415 and r61484. Duncan was correct that these weren't needed.
Bill Wendling [Mon, 5 Jan 2009 22:53:45 +0000 (22:53 +0000)]
Revert r61415 and r61484. Duncan was correct that these weren't needed.

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

15 years agoDon't call setDepthDirty/setHeightDirty when adding an edge
Dan Gohman [Mon, 5 Jan 2009 22:40:26 +0000 (22:40 +0000)]
Don't call setDepthDirty/setHeightDirty when adding an edge
with latency 0, since it doesn't affect the depth or height.

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

15 years agoExtract source location info from DebugInfo.
Devang Patel [Mon, 5 Jan 2009 22:35:52 +0000 (22:35 +0000)]
Extract source location info from DebugInfo.
Add methods to add source location info in a DIE.

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

15 years agoAdd type DIEs using DebugInfo.
Devang Patel [Mon, 5 Jan 2009 21:47:57 +0000 (21:47 +0000)]
Add type DIEs using DebugInfo.

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

15 years agoAdd a note about passing MVT::Other to getSetCCResultType.
Duncan Sands [Mon, 5 Jan 2009 21:33:06 +0000 (21:33 +0000)]
Add a note about passing MVT::Other to getSetCCResultType.

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

15 years agoStrength test.
Bill Wendling [Mon, 5 Jan 2009 21:27:59 +0000 (21:27 +0000)]
Strength test.

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

15 years agoTeach the internalize pass to also internalize
Duncan Sands [Mon, 5 Jan 2009 21:24:45 +0000 (21:24 +0000)]
Teach the internalize pass to also internalize
global aliases.

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

15 years agoWhen checking if an Argument escapes, check if
Duncan Sands [Mon, 5 Jan 2009 21:19:53 +0000 (21:19 +0000)]
When checking if an Argument escapes, check if
the argument is marked nocapture - no need to
analyze the argument if the answer is already
known!

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

15 years agoFind loop back edges only after empty blocks are eliminated.
Evan Cheng [Mon, 5 Jan 2009 21:17:27 +0000 (21:17 +0000)]
Find loop back edges only after empty blocks are eliminated.

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

15 years agotestcase for bill's patch.
Chris Lattner [Mon, 5 Jan 2009 21:07:34 +0000 (21:07 +0000)]
testcase for bill's patch.

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

15 years agoNot having an aliasee is a theoretical possibility.
Duncan Sands [Mon, 5 Jan 2009 20:47:56 +0000 (20:47 +0000)]
Not having an aliasee is a theoretical possibility.

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

15 years agoFormat more neatly.
Duncan Sands [Mon, 5 Jan 2009 20:39:50 +0000 (20:39 +0000)]
Format more neatly.

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

15 years agoRemove trailing spaces.
Duncan Sands [Mon, 5 Jan 2009 20:38:27 +0000 (20:38 +0000)]
Remove trailing spaces.

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

15 years agoDelete unused global aliases with internal linkage.
Duncan Sands [Mon, 5 Jan 2009 20:37:33 +0000 (20:37 +0000)]
Delete unused global aliases with internal linkage.
In fact this also deletes those with linkonce linkage,
however this is currently dead because for the moment
aliases aren't allowed to have this linkage type.

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

15 years agoConstruct composite type DIE using DebugInfo.
Devang Patel [Mon, 5 Jan 2009 19:55:51 +0000 (19:55 +0000)]
Construct composite type DIE using DebugInfo.

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

15 years agoAdd classof() methods so that dwarf writer can decide what DIDescriptor is in its...
Devang Patel [Mon, 5 Jan 2009 19:55:07 +0000 (19:55 +0000)]
Add classof() methods so that dwarf writer can decide what DIDescriptor is in its hand.

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

15 years agoAdd <climits>, to get the definition of CHAR_BIT. This should fix
Dan Gohman [Mon, 5 Jan 2009 19:47:30 +0000 (19:47 +0000)]
Add <climits>, to get the definition of CHAR_BIT. This should fix
build errors.

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

15 years agoTargetLowering.h #includes SelectionDAGNodes.h, so it doesn't need its
Dan Gohman [Mon, 5 Jan 2009 19:40:39 +0000 (19:40 +0000)]
TargetLowering.h #includes SelectionDAGNodes.h, so it doesn't need its
own OpActionsCapacity magic number; it can just use ISD::BUILTIN_OP_END,
as long as it takes care to round up when needed.

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

15 years agoDelete an unused variable and simplify the code.
Dan Gohman [Mon, 5 Jan 2009 19:31:28 +0000 (19:31 +0000)]
Delete an unused variable and simplify the code.

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

15 years agos/ConstructType/ConstructTypeDIE/g
Devang Patel [Mon, 5 Jan 2009 19:07:53 +0000 (19:07 +0000)]
s/ConstructType/ConstructTypeDIE/g

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

15 years agomake llvm-ld smart enough to link against native libraries that are
Chris Lattner [Mon, 5 Jan 2009 19:01:32 +0000 (19:01 +0000)]
make llvm-ld smart enough to link against native libraries that are
not in system library directories by checking -L paths as well.
Patch by Axel Naumann!

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

15 years agoConstruct stuct field DIEs.
Devang Patel [Mon, 5 Jan 2009 18:59:44 +0000 (18:59 +0000)]
Construct stuct field DIEs.

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

15 years agofix wordo
Chris Lattner [Mon, 5 Jan 2009 18:56:52 +0000 (18:56 +0000)]
fix wordo

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

15 years agoRemove redundant ValID::ValID:: scoping (doesn't compile on Windows).
Steve Naroff [Mon, 5 Jan 2009 18:48:47 +0000 (18:48 +0000)]
Remove redundant ValID::ValID:: scoping (doesn't compile on Windows).

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

15 years agoConstruct enumerator DIE using DebugInfo.
Devang Patel [Mon, 5 Jan 2009 18:38:38 +0000 (18:38 +0000)]
Construct enumerator DIE using DebugInfo.

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

15 years agoReject PR3281:accepted03.ll with:
Chris Lattner [Mon, 5 Jan 2009 18:34:07 +0000 (18:34 +0000)]
Reject PR3281:accepted03.ll with:

llvm-as: accepted03.ll:1:35: invalid unresolved type up reference
declare void @r({ \7, opaque, \10 } %su)
                                  ^

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

15 years agoConstruct array/vector type DIEs using DebugInfo.
Devang Patel [Mon, 5 Jan 2009 18:33:01 +0000 (18:33 +0000)]
Construct array/vector type DIEs using DebugInfo.

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

15 years agoGet rid of sentinel insertion in interval reconstruction. It just masked the
Owen Anderson [Mon, 5 Jan 2009 18:32:26 +0000 (18:32 +0000)]
Get rid of sentinel insertion in interval reconstruction.  It just masked the
problem, rather than fixing it.  The problem has now been fixed the right way.

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

15 years agoreject PR3281:crash11.ll with:
Chris Lattner [Mon, 5 Jan 2009 18:27:50 +0000 (18:27 +0000)]
reject PR3281:crash11.ll with:
llvm-as: crash11.ll:2:27: function may not return return opaque type
  "xw" = tail call opaque @608(label %31)
                          ^

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

15 years agoreject PR3281:crash10.ll with:
Chris Lattner [Mon, 5 Jan 2009 18:24:23 +0000 (18:24 +0000)]
reject PR3281:crash10.ll with:

llvm-as: crash10.ll:3:35: floating point constant does not have type 'ppc_fp128'
  "dumy" = fcmp ult ppc_fp128 "j",9209.4
                                  ^

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

15 years agoreject PR3281:crash09.ll with this diagnostic:
Chris Lattner [Mon, 5 Jan 2009 18:19:46 +0000 (18:19 +0000)]
reject PR3281:crash09.ll with this diagnostic:

llvm-as: crash09.ll:3:1: self referential type is invalid
type %0
^

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

15 years agoallow opaque undefs. This resolves PR3282 and fixes
Chris Lattner [Mon, 5 Jan 2009 18:12:21 +0000 (18:12 +0000)]
allow opaque undefs.  This resolves PR3282 and fixes
test/Assembler/2005-05-05-OpaqueUndefValues.ll

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

15 years agoNow, getTag() is used by DwarfWriter.
Devang Patel [Mon, 5 Jan 2009 18:06:21 +0000 (18:06 +0000)]
Now, getTag() is used by DwarfWriter.

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

15 years agoTidy up #includes, deleting a bunch of unnecessary #includes.
Dan Gohman [Mon, 5 Jan 2009 17:59:02 +0000 (17:59 +0000)]
Tidy up #includes, deleting a bunch of unnecessary #includes.

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

15 years agoConstruct basic and derived type DIEs using DebugInfo.
Devang Patel [Mon, 5 Jan 2009 17:57:47 +0000 (17:57 +0000)]
Construct basic and derived type DIEs using DebugInfo.

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

15 years agoHandle iAny and fAny types in TreePatternNode::UpdateNodeType.
Bob Wilson [Mon, 5 Jan 2009 17:52:54 +0000 (17:52 +0000)]
Handle iAny and fAny types in TreePatternNode::UpdateNodeType.

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

15 years agosubsume ConstructPointerType()
Devang Patel [Mon, 5 Jan 2009 17:45:59 +0000 (17:45 +0000)]
subsume ConstructPointerType()

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

15 years agoAdd the keyword 'default'.
Dan Gohman [Mon, 5 Jan 2009 17:44:11 +0000 (17:44 +0000)]
Add the keyword 'default'.

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

15 years agosubsume ConstructBasicType().
Devang Patel [Mon, 5 Jan 2009 17:44:11 +0000 (17:44 +0000)]
subsume ConstructBasicType().

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

15 years agoRenamed Google Test license file from COPYING to LICENSE.TXT to match LLVM
Misha Brukman [Mon, 5 Jan 2009 17:42:15 +0000 (17:42 +0000)]
Renamed Google Test license file from COPYING to LICENSE.TXT to match LLVM
conventions, per John Criswell.

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

15 years agosquash warnings.
Devang Patel [Mon, 5 Jan 2009 17:31:22 +0000 (17:31 +0000)]
squash warnings.

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

15 years agoA few more polygen grammar updates.
Dan Gohman [Mon, 5 Jan 2009 17:29:42 +0000 (17:29 +0000)]
A few more polygen grammar updates.
 - After GlobalAssign, emit addrspace before global/constant, to follow
   the new syntax.
 - Eliminate "type void", which is now invalid.
 - Fix invalid liblists like [, "foo"].
 - Tweak whitespace in a few places.

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

15 years agoset standard ignores
Gabor Greif [Mon, 5 Jan 2009 17:27:39 +0000 (17:27 +0000)]
set standard ignores

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

15 years agoFix spelling in some comments.
Bob Wilson [Mon, 5 Jan 2009 17:23:09 +0000 (17:23 +0000)]
Fix spelling in some comments.

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

15 years agoanother fix to my previous commit:
Gabor Greif [Mon, 5 Jan 2009 17:19:25 +0000 (17:19 +0000)]
another fix to my previous commit:
* some picky <g> compilers get insulted by const-incorrectness
* respect 80-char limit

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

15 years agoFix misplaced right parentheses.
Evan Cheng [Mon, 5 Jan 2009 17:17:04 +0000 (17:17 +0000)]
Fix misplaced right parentheses.

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

15 years agoeliminate tabs from my previous commit
Gabor Greif [Mon, 5 Jan 2009 16:28:14 +0000 (16:28 +0000)]
eliminate tabs from my previous commit

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

15 years agoGet rid of the tagging functions and use PointerIntPair.
Gabor Greif [Mon, 5 Jan 2009 16:05:32 +0000 (16:05 +0000)]
Get rid of the tagging functions and use PointerIntPair.
This means that we have to include an additional header.

This patch should be functionally equivalent. I cannot outrule any performance
degradation, though I do not expect any.

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

15 years agoDon't spew bitcode to standard out if this test
Duncan Sands [Mon, 5 Jan 2009 10:52:29 +0000 (10:52 +0000)]
Don't spew bitcode to standard out if this test
fails, like it is right now.

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

15 years agoThis test passes again, unXFAIL.
Torok Edwin [Mon, 5 Jan 2009 09:30:47 +0000 (09:30 +0000)]
This test passes again, unXFAIL.

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

15 years agoAtom and Core i7 do not have same model number after all.
Evan Cheng [Mon, 5 Jan 2009 08:45:01 +0000 (08:45 +0000)]
Atom and Core i7 do not have same model number after all.

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

15 years agoproduce the same diagnostics for vicmp constant exprs as vicmp instructions.
Chris Lattner [Mon, 5 Jan 2009 08:26:05 +0000 (08:26 +0000)]
produce the same diagnostics for vicmp constant exprs as vicmp instructions.

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

15 years agoFix PR3281:crash08.ll with this diagnostic:
Chris Lattner [Mon, 5 Jan 2009 08:24:46 +0000 (08:24 +0000)]
Fix PR3281:crash08.ll with this diagnostic:
llvm-as: crash08.ll:3:15: invalid operand type for instruction
  "qp" = sdiv fp128 0x1, %30
              ^

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

15 years agoreject PR3281:crash07.ll with:
Chris Lattner [Mon, 5 Jan 2009 08:18:44 +0000 (08:18 +0000)]
reject PR3281:crash07.ll with:

llvm-as: crash07.ll:2:32: va_arg requires operand with first class type
  %y = va_arg [52 x <{}>] %43, double (...) sspreq
                               ^

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

15 years agoalignment of 0 is not valid.
Chris Lattner [Mon, 5 Jan 2009 08:14:35 +0000 (08:14 +0000)]
alignment of 0 is not valid.

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

15 years agoreject undef/zero labels. This fixes PR3281:crash0[56].ll with these
Chris Lattner [Mon, 5 Jan 2009 08:13:38 +0000 (08:13 +0000)]
reject undef/zero labels.  This fixes PR3281:crash0[56].ll with these
diagnostics:
llvm-as: crash05.ll:1:14: invalid type for null constant
global label zeroinitializer addrspace (75), section "c"
             ^
llvm-as: crash06.ll:2:14: invalid type for null constant
  udiv label zeroinitializer, @0
             ^

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

15 years agoadd checking intentionally elided for vfcmp/vicmp since they should really
Chris Lattner [Mon, 5 Jan 2009 08:09:48 +0000 (08:09 +0000)]
add checking intentionally elided for vfcmp/vicmp since they should really
just be removed.  However, this fixes PR3281:crash04.ll, diagnosing it with:

lvm-as: crash04.ll:2:13: vfcmp requires vector floating point operands
  vfcmp uno double* undef, undef
            ^

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

15 years agodiagnose PR3281:crash02.ll with:
Chris Lattner [Mon, 5 Jan 2009 08:04:33 +0000 (08:04 +0000)]
diagnose PR3281:crash02.ll with:
llvm-as: crash02.ll:1:62: invalid function return type
declare { <{ <{}>, void ([1898 x { void ()* }], opaque, ...) (), fp128 * }>, opaque } @t ()
                                                             ^

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

15 years agoreject PR3281:crash01.ll with:
Chris Lattner [Mon, 5 Jan 2009 08:00:30 +0000 (08:00 +0000)]
reject PR3281:crash01.ll with:

llvm-as: crash01.ll:1:9: invalid function return type
declare opaque @t()
        ^

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

15 years agotighten up return type check
Chris Lattner [Mon, 5 Jan 2009 07:58:59 +0000 (07:58 +0000)]
tighten up return type check

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

15 years agofix PR3281:accepted0[02].ll: represent empty arrays distinctly, and
Chris Lattner [Mon, 5 Jan 2009 07:52:51 +0000 (07:52 +0000)]
fix PR3281:accepted0[02].ll: represent empty arrays distinctly, and
diagnose attempts to initialize non-empty arrays with them.  This
produces:
llvm-as: accepted02.ll:1:28: invalid empty array initializer
@"o" = global [5 x double] []
                           ^
llvm-as: accepted00.ll:1:32: invalid empty array initializer
@"za" = thread_local global {} []
                               ^
[

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

15 years agoPR3281:crash00.ll: produce this diagnostic instead of crashing:
Chris Lattner [Mon, 5 Jan 2009 07:46:05 +0000 (07:46 +0000)]
PR3281:crash00.ll: produce this diagnostic instead of crashing:

@t = global i8 0, align 3
                        ^

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

15 years agoHandle weak_extern in the JIT. This fixes
Dan Gohman [Mon, 5 Jan 2009 05:32:42 +0000 (05:32 +0000)]
Handle weak_extern in the JIT. This fixes
SingleSource/UnitTests/2007-04-25-weak.c in JIT mode. The test
now passes on systems which are able to produce a correct
reference output to compare with.

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

15 years agoCellSPU:
Scott Michel [Mon, 5 Jan 2009 04:05:53 +0000 (04:05 +0000)]
CellSPU:
- Teach SPU64InstrInfo.td about the remaining signed comparisons, update tests
  accordingly.

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

15 years agogc is not an obsolete keyword.
Dan Gohman [Mon, 5 Jan 2009 03:22:02 +0000 (03:22 +0000)]
gc is not an obsolete keyword.

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

15 years agoUpdate polygen grammar for recent language changes.
Dan Gohman [Mon, 5 Jan 2009 03:21:23 +0000 (03:21 +0000)]
Update polygen grammar for recent language changes.

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

15 years agoCellSPU:
Scott Michel [Mon, 5 Jan 2009 01:35:22 +0000 (01:35 +0000)]
CellSPU:
- Add an 8-bit operation test, which doesn't do much at this point.

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

15 years agoCellSPU:
Scott Michel [Mon, 5 Jan 2009 01:34:35 +0000 (01:34 +0000)]
CellSPU:
- Fix (brcond (setq ...)) bug, where BRNZ should have been used vice BRZ.
- Kill unused/unnecessary nodes in SPUNodes.td
- Beef out the i64operations.c test harness to use a lot of unaligned
  loads, test loops and LLVM loop/basic block optimizations; run the
  test harness successfully on real Cell hardware.

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

15 years agoMove the libcall annotating part from doFinalization to doInitialization.
Nick Lewycky [Mon, 5 Jan 2009 00:07:50 +0000 (00:07 +0000)]
Move the libcall annotating part from doFinalization to doInitialization.
Finalization occurs after all the FunctionPasses in the group have run, which
is clearly not what we want.

This also means that we have to make sure that we apply the right param
attributes when creating a new function.

Also, add a missed optimization: strdup and strndup. NoCapture and
NoAlias return!

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