oota-llvm.git
16 years agoHonour ByVal parameter attribute in llvm2cpp
Anton Korobeynikov [Sat, 29 Mar 2008 11:15:01 +0000 (11:15 +0000)]
Honour ByVal parameter attribute in llvm2cpp

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

16 years agochange iterator invalidation avoidance to just move the iterator backward
Chris Lattner [Sat, 29 Mar 2008 05:15:47 +0000 (05:15 +0000)]
change iterator invalidation avoidance to just move the iterator backward
when something changes, instead of moving forward.  This allows us to
simplify memset lowering, inserting the memset at the end of the range of
stuff we're touching instead of at the start.

This, in turn, allows us to make use of the addressing instructions already
used in the function instead of inserting our own.  For example, we now
codegen:

%tmp41 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 0 ; <i8*> [#uses=2]
call void @llvm.memset.i64( i8* %tmp41, i8 -1, i64 8, i32 1 )

instead of:

%tmp20 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 7 ; <i8*> [#uses=1]
%ptroffset = getelementptr i8* %tmp20, i64 -7 ; <i8*> [#uses=1]
call void @llvm.memset.i64( i8* %ptroffset, i8 -1, i64 8, i32 1 )

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

16 years agomake the common case of a single store (which clearly shouldn't be turned
Chris Lattner [Sat, 29 Mar 2008 04:52:12 +0000 (04:52 +0000)]
make the common case of a single store (which clearly shouldn't be turned
into a memset!) faster by avoiding an allocation of an std::list node.

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

16 years agoadd a testcase for forming memset from noncontiguous stores.
Chris Lattner [Sat, 29 Mar 2008 04:51:35 +0000 (04:51 +0000)]
add a testcase for forming memset from noncontiguous stores.

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

16 years agogive form-memset a significantly more sane heuristic, enable it by default.
Chris Lattner [Sat, 29 Mar 2008 04:36:18 +0000 (04:36 +0000)]
give form-memset a significantly more sane heuristic, enable it by default.

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

16 years agoRemove some unneeded code for LiveInterval joining, and fix a bug in the Phi eliminat...
Owen Anderson [Sat, 29 Mar 2008 01:58:47 +0000 (01:58 +0000)]
Remove some unneeded code for LiveInterval joining, and fix a bug in the Phi elimination algorithm where we were accidentally reasoning about
the source rather than the destination.

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

16 years agoCosmetic change.
Evan Cheng [Sat, 29 Mar 2008 01:04:05 +0000 (01:04 +0000)]
Cosmetic change.

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

16 years agoFix a tokenfactor node to use the load chain rather than the
Dan Gohman [Fri, 28 Mar 2008 23:45:16 +0000 (23:45 +0000)]
Fix a tokenfactor node to use the load chain rather than the
load value. This fixes PR2177.

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

16 years agoBacking out 48911 for now. It's breaking stuff.
Evan Cheng [Fri, 28 Mar 2008 17:49:06 +0000 (17:49 +0000)]
Backing out 48911 for now. It's breaking stuff.

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

16 years agoifdef out a dead function. Should this be removed?
Chris Lattner [Fri, 28 Mar 2008 15:36:27 +0000 (15:36 +0000)]
ifdef out a dead function.  Should this be removed?

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

16 years agoRename getAnyLoad to getLoad is suggested by Evan.
Duncan Sands [Fri, 28 Mar 2008 09:45:24 +0000 (09:45 +0000)]
Rename getAnyLoad to getLoad is suggested by Evan.

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

16 years agoNew entry.
Evan Cheng [Fri, 28 Mar 2008 07:07:06 +0000 (07:07 +0000)]
New entry.

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

16 years agoLoad from stub is already re-materializable.
Evan Cheng [Fri, 28 Mar 2008 06:49:25 +0000 (06:49 +0000)]
Load from stub is already re-materializable.

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

16 years agoUpdate example to new syntax.
Nick Lewycky [Fri, 28 Mar 2008 06:46:51 +0000 (06:46 +0000)]
Update example to new syntax.

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

16 years agomake memset inference significantly more powerful: it can now handle
Chris Lattner [Fri, 28 Mar 2008 06:45:13 +0000 (06:45 +0000)]
make memset inference significantly more powerful: it can now handle
memsets that initialize "structs of arrays" and other store sequences
that are not sequential.  This is still only enabled if you pass
-form-memset-from-stores.  The flag is not heavily tested and I haven't
analyzed the perf regressions when -form-memset-from-stores is passed
either, but this causes no make check regressions.

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

16 years agoNew entry.
Evan Cheng [Fri, 28 Mar 2008 06:34:23 +0000 (06:34 +0000)]
New entry.

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

16 years agoSimplify the conversion from "0x" numbers to a single digit number.
Bill Wendling [Fri, 28 Mar 2008 06:22:23 +0000 (06:22 +0000)]
Simplify the conversion from "0x" numbers to a single digit number.

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

16 years agoImplement LegalizeTypes support for softfloat LOAD.
Duncan Sands [Thu, 27 Mar 2008 20:23:40 +0000 (20:23 +0000)]
Implement LegalizeTypes support for softfloat LOAD.
In order to handle indexed nodes I had to introduce
a new constructor, and since I was there I factorized
the code in the various load constructors.

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

16 years agoAvoid creating chain dependencies from CopyToReg nodes to load and store
Dan Gohman [Thu, 27 Mar 2008 19:56:19 +0000 (19:56 +0000)]
Avoid creating chain dependencies from CopyToReg nodes to load and store
nodes. This doesn't currently have much impact the generated code, but it
does produce simpler-looking SelectionDAGs, and consequently
simpler-looking ScheduleDAGs, because there are fewer spurious
dependencies.

In particular, CopyValueToVirtualRegister now uses the entry node as the
input chain dependency for new CopyToReg nodes instead of calling getRoot
and depending on the most recent memory reference.

Also, rename UnorderedChains to PendingExports and pull it up from being
a local variable in SelectionDAGISel::BuildSelectionDAG to being a
member variable of SelectionDAGISel, so that it doesn't have to be
passed around to all the places that need it.

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

16 years agoPHI->removeIncomingValue may remove PHInode.
Devang Patel [Thu, 27 Mar 2008 17:32:46 +0000 (17:32 +0000)]
PHI->removeIncomingValue may remove PHInode.
Increment iterator in advance.

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

16 years agoadd another testcase
Devang Patel [Thu, 27 Mar 2008 17:13:55 +0000 (17:13 +0000)]
add another testcase

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

16 years agoFix build breakage on Windows with GCC 4.3. References bug #2176.
Mikhail Glushenkov [Thu, 27 Mar 2008 09:53:47 +0000 (09:53 +0000)]
Fix build breakage on Windows with GCC 4.3. References bug #2176.

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

16 years agoFix spelling. Thanks, Duncan! :-)
Roman Levenstein [Thu, 27 Mar 2008 09:44:37 +0000 (09:44 +0000)]
Fix spelling. Thanks, Duncan! :-)

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

16 years agoSpeed-up the SumOfUnscheduledPredsOfSuccs by introducing a new function
Roman Levenstein [Thu, 27 Mar 2008 09:14:57 +0000 (09:14 +0000)]
Speed-up the SumOfUnscheduledPredsOfSuccs by introducing a new function
called LimitedSumOfUnscheduledPredsOfSuccs. It terminates the computation
after a given treshold is reached. This new function is always faster, but
brings real wins only on bigger test-cases.

The old function SumOfUnscheduledPredsOfSuccs is left in-place for now and therefore a warning about an unused static function is produced.

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

16 years agoAdding the first two chapters of the ocaml/kaleidoscope tutorial.
Erick Tryzelaar [Thu, 27 Mar 2008 08:18:07 +0000 (08:18 +0000)]
Adding the first two chapters of the ocaml/kaleidoscope tutorial.

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

16 years agowhen a node is removed from an ilist, set its next/prev pointers to
Chris Lattner [Thu, 27 Mar 2008 02:43:03 +0000 (02:43 +0000)]
when a node is removed from an ilist, set its next/prev pointers to
null.  This means that uses of invalidated iterators will explode violently
with:
ilist:143: failed assertion `NodePtr && "++'d off the end of an ilist!"'

instead of happening to work "most of the time".

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

16 years agoNew test case.
Devang Patel [Thu, 27 Mar 2008 01:51:31 +0000 (01:51 +0000)]
New test case.

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

16 years agoCode clean up.
Evan Cheng [Thu, 27 Mar 2008 01:45:11 +0000 (01:45 +0000)]
Code clean up.

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

16 years agoAllow certain lea instructions to be rematerialized.
Evan Cheng [Thu, 27 Mar 2008 01:41:09 +0000 (01:41 +0000)]
Allow certain lea instructions to be rematerialized.

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

16 years agoRemove an unused command line option.
Evan Cheng [Thu, 27 Mar 2008 01:30:24 +0000 (01:30 +0000)]
Remove an unused command line option.

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

16 years agoFix a memory bug: increment an iterator of a deleted machine instr.
Evan Cheng [Thu, 27 Mar 2008 01:27:25 +0000 (01:27 +0000)]
Fix a memory bug: increment an iterator of a deleted machine instr.

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

16 years agoExpose ExecutionEngine::getTargetData() to c and ocaml bindings.
Erick Tryzelaar [Thu, 27 Mar 2008 00:27:14 +0000 (00:27 +0000)]
Expose ExecutionEngine::getTargetData() to c and ocaml bindings.

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

16 years agoUpdating win32 VStudio project files with new file references and removing dead refer...
Chuck Rose III [Thu, 27 Mar 2008 00:02:53 +0000 (00:02 +0000)]
Updating win32 VStudio project files with new file references and removing dead references.

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

16 years agoFix a bug in Darwin EH: FDE->CIE pointer must
Dale Johannesen [Wed, 26 Mar 2008 23:31:39 +0000 (23:31 +0000)]
Fix a bug in Darwin EH:  FDE->CIE pointer must
be relocatable.  Describe why .set is needed better.

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

16 years agoAnother test commit (with git-svn)
Mikhail Glushenkov [Wed, 26 Mar 2008 21:37:43 +0000 (21:37 +0000)]
Another test commit (with git-svn)

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

16 years agoTest commit
Mikhail Glushenkov [Wed, 26 Mar 2008 21:18:58 +0000 (21:18 +0000)]
Test commit

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

16 years agoOne more coalescer fix wrt deadness propagation.
Evan Cheng [Wed, 26 Mar 2008 20:15:49 +0000 (20:15 +0000)]
One more coalescer fix wrt deadness propagation.

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

16 years agoAvoid commuting a def MI in order to coalesce a copy instruction away if any use...
Evan Cheng [Wed, 26 Mar 2008 19:03:01 +0000 (19:03 +0000)]
Avoid commuting a def MI in order to coalesce a copy instruction away if any use of the same val# is a copy instruction that has already been coalesced.

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

16 years agoUse a linked data structure for the uses lists of an SDNode, just like
Roman Levenstein [Wed, 26 Mar 2008 12:39:26 +0000 (12:39 +0000)]
Use a linked data structure for the uses lists of an SDNode, just like
LLVM Value/Use does and MachineRegisterInfo/MachineOperand does.
This allows constant time for all uses list maintenance operations.

The idea was suggested by Chris. Reviewed by Evan and Dan.
Patch is tested and approved by Dan.

On normal use-cases compilation speed is not affected. On very big basic
blocks there are compilation speedups in the range of 15-20% or even better.

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

16 years agoFixed some spelling errors. Thanks, Duncan!
Roman Levenstein [Wed, 26 Mar 2008 11:23:38 +0000 (11:23 +0000)]
Fixed some spelling errors. Thanks, Duncan!

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

16 years agoSome improvements related to the computation of isReachable.
Roman Levenstein [Wed, 26 Mar 2008 09:18:09 +0000 (09:18 +0000)]
Some improvements related to the computation of isReachable.
This fixes Bugzilla #1835 (http://llvm.org/bugs/show_bug.cgi?id=1835).
This patched is reviewed by Tanya and Dan. Dan tested and approved it.

The reason for the bad performance of the old algorithm is that it is very naive and scans every
time all nodes of the DAG in the worst case.

This patch introduces  a new algorithm based on the paper "Online algorithms
for maintaining the topological order of a directed acyclic graph" by
David J.Pearce and Paul H.J.Kelly. This is the MNR algorithm. It has a
linear time worst-case and performs much better in most situations.

The paper can be found here:
http://fano.ics.uci.edu/cites/Document/Online-algorithms-for-maintaining-the-topological-order-of-a-directed-acyclic-graph.html

The main idea of the new algorithm is to compute the topological ordering of the SNodes in the
DAG and to maintain it even after DAG modifications. The topological ordering allows for very fast
node reachability checks.

Tests on very big  input files with tens of thousands of instructions in a BB indicate huge
speed-ups (up to 10x compilation time improvement) compared to the old version.

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

16 years agoFix some SSE4.1 instruction encoding bugs.
Evan Cheng [Wed, 26 Mar 2008 08:11:49 +0000 (08:11 +0000)]
Fix some SSE4.1 instruction encoding bugs.

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

16 years agoDead PHI instructions need to be handled specially.
Owen Anderson [Wed, 26 Mar 2008 03:03:23 +0000 (03:03 +0000)]
Dead PHI instructions need to be handled specially.

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

16 years agoTest commit (removed trailing whitespace)
Erick Tryzelaar [Wed, 26 Mar 2008 00:38:56 +0000 (00:38 +0000)]
Test commit (removed trailing whitespace)

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

16 years agoUse ## for comment delimiter on darwin x86-32, so
Dale Johannesen [Tue, 25 Mar 2008 23:29:30 +0000 (23:29 +0000)]
Use ## for comment delimiter on darwin x86-32, so
llvm's output .s files will go through gcc -std=c99
without triggering preprocesser errors.  Approach
suggested by Daveed Vandevoorde.

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

16 years agoSmaller function alignment when optimizing for size.
Evan Cheng [Tue, 25 Mar 2008 22:29:46 +0000 (22:29 +0000)]
Smaller function alignment when optimizing for size.

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

16 years agoRename option -optimizefor-size to -optimize-size.
Evan Cheng [Tue, 25 Mar 2008 22:28:39 +0000 (22:28 +0000)]
Rename option -optimizefor-size to -optimize-size.

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

16 years agoRemove some debugging code.
Owen Anderson [Tue, 25 Mar 2008 22:26:43 +0000 (22:26 +0000)]
Remove some debugging code.

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

16 years agoStrongPHIElimination doesn't support swapping live intervals like the coalescer does.
Owen Anderson [Tue, 25 Mar 2008 22:25:27 +0000 (22:25 +0000)]
StrongPHIElimination doesn't support swapping live intervals like the coalescer does.

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

16 years agoAdd explicit keywords.
Dan Gohman [Tue, 25 Mar 2008 22:06:05 +0000 (22:06 +0000)]
Add explicit keywords.

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

16 years agoA quick nm audit turned up several fixed tables and objects that were
Dan Gohman [Tue, 25 Mar 2008 21:45:14 +0000 (21:45 +0000)]
A quick nm audit turned up several fixed tables and objects that were
marked read-write. Use const so that they can be allocated in a
read-only segment.

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

16 years agoAvoid outputing spaces at the ends of lines.
Dan Gohman [Tue, 25 Mar 2008 21:38:12 +0000 (21:38 +0000)]
Avoid outputing spaces at the ends of lines.

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

16 years agoDo not align loops if optimizing for size.
Devang Patel [Tue, 25 Mar 2008 21:03:02 +0000 (21:03 +0000)]
Do not align loops if optimizing for size.

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

16 years agoAdd optimize-for-size knob.
Devang Patel [Tue, 25 Mar 2008 21:02:35 +0000 (21:02 +0000)]
Add optimize-for-size knob.

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

16 years agoHandle a special case xor undef, undef -> 0. Technically this should be transformed...
Evan Cheng [Tue, 25 Mar 2008 20:08:07 +0000 (20:08 +0000)]
Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it.

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

16 years agoHandle a special case xor undef, undef -> 0. Technically this should be transformed...
Evan Cheng [Tue, 25 Mar 2008 20:07:13 +0000 (20:07 +0000)]
Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it.

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

16 years agoFix the Cygwin/Mingw-On-Cygwin build. Patch by Alain Frisch!
Anton Korobeynikov [Tue, 25 Mar 2008 18:53:36 +0000 (18:53 +0000)]
Fix the Cygwin/Mingw-On-Cygwin build. Patch by Alain Frisch!

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

16 years agoDe-constify the input to the "operator >>" method as it is modified.
Bill Wendling [Tue, 25 Mar 2008 18:16:52 +0000 (18:16 +0000)]
De-constify the input to the "operator >>" method as it is modified.
Patch by dekruijf@cs.wisc.edu!

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

16 years agoFix typos.
Dan Gohman [Tue, 25 Mar 2008 17:10:29 +0000 (17:10 +0000)]
Fix typos.

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

16 years agoAdd CMP32mr and friends to the load-unfolding table. Among
Dan Gohman [Tue, 25 Mar 2008 16:53:19 +0000 (16:53 +0000)]
Add CMP32mr and friends to the load-unfolding table. Among
other things, this allows the scheduler to unfold a load operand
in the 2008-01-08-SchedulerCrash.ll testcase, so it now successfully
clones the comparison to avoid a pushf+popf.

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

16 years agoTests for the instruction iterator bindings.
Gordon Henriksen [Tue, 25 Mar 2008 16:35:08 +0000 (16:35 +0000)]
Tests for the instruction iterator bindings.

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

16 years agoExtend the builder interface to use the new instruction positioning code.
Gordon Henriksen [Tue, 25 Mar 2008 16:26:51 +0000 (16:26 +0000)]
Extend the builder interface to use the new instruction positioning code.

This adds support for instruction iterators, as well as rewriting the
builder code to use these new functions. This lets us eliminate the C
bindings for moving around the builder.

Patch by Erick Tryzelaar!

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

16 years agoFix PR2062: Don't build Intrinsics.gen in the source directory. Do it in the
Bill Wendling [Tue, 25 Mar 2008 09:12:48 +0000 (09:12 +0000)]
Fix PR2062: Don't build Intrinsics.gen in the source directory. Do it in the
object directory.

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

16 years agoDisable building llvm-upgrade.
Tanya Lattner [Tue, 25 Mar 2008 05:05:58 +0000 (05:05 +0000)]
Disable building llvm-upgrade.

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

16 years agoMake a note of the fact that EmitOwnedPtr() has nothing to do with the
Sam Bishop [Tue, 25 Mar 2008 04:41:18 +0000 (04:41 +0000)]
Make a note of the fact that EmitOwnedPtr() has nothing to do with the
OwningPtr<> class.

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

16 years agoByebye llvm-upgrade!
Tanya Lattner [Tue, 25 Mar 2008 04:26:08 +0000 (04:26 +0000)]
Byebye llvm-upgrade!

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

16 years agolastRegisterUse() should ignore identity copies. Those will be erased.
Evan Cheng [Tue, 25 Mar 2008 02:02:19 +0000 (02:02 +0000)]
lastRegisterUse() should ignore identity copies. Those will be erased.

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

16 years agocheck struct layout
Devang Patel [Tue, 25 Mar 2008 00:47:49 +0000 (00:47 +0000)]
check struct layout

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

16 years agoRemove an unneeded test.
Evan Cheng [Mon, 24 Mar 2008 23:55:16 +0000 (23:55 +0000)]
Remove an unneeded test.

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

16 years agoAdd \t after .set. Fix by Jay Freeman.
Evan Cheng [Mon, 24 Mar 2008 23:36:49 +0000 (23:36 +0000)]
Add \t after .set. Fix by Jay Freeman.

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

16 years agoIf the coalescer commuted a def MI to allow coalescing, it can changed a previously...
Evan Cheng [Mon, 24 Mar 2008 23:31:21 +0000 (23:31 +0000)]
If the coalescer commuted a def MI to allow coalescing, it can changed a previously coalesced copy into an non-identity copy.

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

16 years agoAdd an assertion to catch register of illegal class.
Evan Cheng [Mon, 24 Mar 2008 23:28:21 +0000 (23:28 +0000)]
Add an assertion to catch register of illegal class.

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

16 years agoUse the bit size of the operand instead of the hard-coded 32 to generate the
Bill Wendling [Mon, 24 Mar 2008 23:16:37 +0000 (23:16 +0000)]
Use the bit size of the operand instead of the hard-coded 32 to generate the
mask.

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

16 years agoWith debug info, there are nameless constant global values. do not crash when we...
Andrew Lenharth [Mon, 24 Mar 2008 22:16:14 +0000 (22:16 +0000)]
With debug info, there are nameless constant global values.  do not crash when we hit one

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

16 years agoAdd file to project.
Steve Naroff [Mon, 24 Mar 2008 22:01:58 +0000 (22:01 +0000)]
Add file to project.

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

16 years ago- SSE4.1 extractfps extracts a f32 into a gr32 register. Very useful! Not. Fix the...
Evan Cheng [Mon, 24 Mar 2008 21:52:23 +0000 (21:52 +0000)]
- SSE4.1 extractfps extracts a f32 into a gr32 register. Very useful! Not. Fix the instruction specification and teaches lowering code to use it only when the only use is a store instruction.

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

16 years agoOops. I wanted the compile flags for C++, not the C preprocessor flags.
Owen Anderson [Mon, 24 Mar 2008 21:38:01 +0000 (21:38 +0000)]
Oops.  I wanted the compile flags for C++, not the C preprocessor flags.

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

16 years agoRevert r48676. I had plans for using it, but now it's just dead code.
Owen Anderson [Mon, 24 Mar 2008 21:29:58 +0000 (21:29 +0000)]
Revert r48676.  I had plans for using it, but now it's just dead code.

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

16 years agovoid type is also a valid function return type.
Devang Patel [Mon, 24 Mar 2008 20:52:42 +0000 (20:52 +0000)]
void type is also a valid function return type.

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

16 years agoRemove #include<iostream>, which I was using for debugging.
Owen Anderson [Mon, 24 Mar 2008 20:36:47 +0000 (20:36 +0000)]
Remove #include<iostream>, which I was using for debugging.

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

16 years agoAdd incoming value from header only if phi node has any use inside the loop.
Devang Patel [Mon, 24 Mar 2008 20:16:14 +0000 (20:16 +0000)]
Add incoming value from header only if phi node has any use inside the loop.

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

16 years agoAdded Passes.html to the documentation list.
Tanya Lattner [Mon, 24 Mar 2008 18:29:32 +0000 (18:29 +0000)]
Added Passes.html to the documentation list.

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

16 years agoFix typo. Clarify underlying message.
Devang Patel [Mon, 24 Mar 2008 18:10:52 +0000 (18:10 +0000)]
Fix typo. Clarify underlying message.

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

16 years agoFix test name.
Devang Patel [Mon, 24 Mar 2008 18:08:07 +0000 (18:08 +0000)]
Fix test name.

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

16 years agoapparently tclsh doesn't lex like bash. Weird.
Chris Lattner [Mon, 24 Mar 2008 17:41:57 +0000 (17:41 +0000)]
apparently tclsh doesn't lex like bash.  Weird.

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

16 years agopass the option so this test tests the right thing.
Chris Lattner [Mon, 24 Mar 2008 17:36:38 +0000 (17:36 +0000)]
pass the option so this test tests the right thing.

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

16 years agoAdd new test.
Devang Patel [Mon, 24 Mar 2008 17:16:39 +0000 (17:16 +0000)]
Add new test.

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

16 years agoRemove an unnecessary #include.
Dan Gohman [Mon, 24 Mar 2008 16:58:44 +0000 (16:58 +0000)]
Remove an unnecessary #include.

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

16 years agoRemove incorrect comment.
Devang Patel [Mon, 24 Mar 2008 16:58:20 +0000 (16:58 +0000)]
Remove incorrect comment.

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

16 years agoShrink the size of AllocationInst by using its SubclassData
Dan Gohman [Mon, 24 Mar 2008 16:55:58 +0000 (16:55 +0000)]
Shrink the size of AllocationInst by using its SubclassData
field to store the alignment value instead of haing a
separate field.

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

16 years agoAPIntify SelectionDAG's EXTRACT_ELEMENT code.
Dan Gohman [Mon, 24 Mar 2008 16:38:05 +0000 (16:38 +0000)]
APIntify SelectionDAG's EXTRACT_ELEMENT code.

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

16 years agoIncreasing the inline limit from (overly conservative) 200 to 300. Given each BB...
Evan Cheng [Mon, 24 Mar 2008 06:37:48 +0000 (06:37 +0000)]
Increasing the inline limit from (overly conservative) 200 to 300. Given each BB costs 20 and each instruction costs 5, 200 means a 4 BB function + 24 instructions (actually less because caller's size also contributes to it).

Furthermore, double the limit when more than 10% of the callee instructions are vector instructions. Multimedia kernels tend to love inlining.

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

16 years agoSmall format/grammar changes.
Bill Wendling [Mon, 24 Mar 2008 05:58:47 +0000 (05:58 +0000)]
Small format/grammar changes.

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

16 years agoGrammar Nazi strikes! :-)
Bill Wendling [Mon, 24 Mar 2008 05:55:54 +0000 (05:55 +0000)]
Grammar Nazi strikes! :-)

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

16 years agoUpdate Function type documentation to clarify how multiple return values are supported.
Devang Patel [Mon, 24 Mar 2008 05:35:41 +0000 (05:35 +0000)]
Update Function type documentation to clarify how multiple return values are supported.

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

16 years agoTemporarily disabling memset forming optimization. Add an option.
Evan Cheng [Mon, 24 Mar 2008 05:28:38 +0000 (05:28 +0000)]
Temporarily disabling memset forming optimization. Add an option.

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

16 years agoBe sure to remove intervals after we've joined them. Also, remove some duplicated...
Owen Anderson [Mon, 24 Mar 2008 04:11:27 +0000 (04:11 +0000)]
Be sure to remove intervals after we've joined them.  Also, remove some duplicated code.

With this pass, StrongPHIElim can compile very simple testcases correctly.  There's still a ways
to go before it's ready for prime time, though.

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

16 years agoIgnoring per-user file.
Gordon Henriksen [Mon, 24 Mar 2008 03:43:50 +0000 (03:43 +0000)]
Ignoring per-user file.

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

16 years agoIgnoring generated files.
Gordon Henriksen [Mon, 24 Mar 2008 03:42:32 +0000 (03:42 +0000)]
Ignoring generated files.

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

16 years agoTransform (zext (or (icmp), (icmp))) to (or (zext (cimp), (zext icmp))) if at least...
Evan Cheng [Mon, 24 Mar 2008 00:21:34 +0000 (00:21 +0000)]
Transform (zext (or (icmp), (icmp))) to (or (zext (cimp), (zext icmp))) if at least one of the (zext icmp) can be transformed to eliminate an icmp.

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