44955 Commits

Author SHA1 Message Date
Gabor Greif
2b1114593e Declare Sentinel fragments as mutable to get rid
of some pointless casting. This fragment logically
does not belong to ilist anyway, but to "ghostly"
NodeType.

llvm-svn: 65843
2009-03-02 14:47:45 +00:00
Gabor Greif
267542aaa5 remove a deprecated interface that was pretty useless
llvm-svn: 65842
2009-03-02 12:42:07 +00:00
Gabor Greif
0ee8d1d896 note the removal of deprecated interfaces
llvm-svn: 65841
2009-03-02 12:23:55 +00:00
Gabor Greif
f30dc30eea fix typo
llvm-svn: 65839
2009-03-02 12:10:56 +00:00
Gabor Greif
a7245a7764 minor tweaks
llvm-svn: 65838
2009-03-02 12:02:51 +00:00
Gabor Greif
744adc4f8c minor tweaks
llvm-svn: 65837
2009-03-02 11:34:51 +00:00
Mikhail Glushenkov
5d2b946f51 Remove duplication in Makefile.rules.
Merge common bits from the LLVMC and TABLEGEN sections.

llvm-svn: 65834
2009-03-02 09:42:59 +00:00
Nicolas Geoffray
d12730ac42 Add more notes for VMKit.
llvm-svn: 65833
2009-03-02 09:25:38 +00:00
Duncan Sands
51ce06c788 Fix PR3694: add an instcombine micro-optimization that helps
clean up when using variable length arrays in llvm-gcc.

llvm-svn: 65832
2009-03-02 09:18:21 +00:00
Mikhail Glushenkov
a79911a965 Move the rules for building plugins to Makefile.rules.
llvm-svn: 65827
2009-03-02 09:04:13 +00:00
Mikhail Glushenkov
07e209b7b0 Fix build with objdir != srcdir.
llvm-svn: 65826
2009-03-02 09:03:36 +00:00
Mikhail Glushenkov
3f2bbd6301 Move code from Main.cpp to the include dir.
User drivers based on llvmc must all share the initialization code.
Putting main() into libCompilerDriver is not a very good idea IMO (and ld gave
me some strange EH-related error anyway).

llvm-svn: 65825
2009-03-02 09:03:02 +00:00
Mikhail Glushenkov
6987e30144 Cosmetic fixes: include guards.
llvm-svn: 65824
2009-03-02 09:02:28 +00:00
Mikhail Glushenkov
0ce41a4c26 Plugin::Priority() doesn't need to be pure virtual.
llvm-svn: 65823
2009-03-02 09:02:01 +00:00
Mikhail Glushenkov
1a0ddf169b Add a comment.
llvm-svn: 65822
2009-03-02 09:01:39 +00:00
Mikhail Glushenkov
3cde18e191 Reorganize llvmc code.
Move the code from 'llvmc/driver' into a new CompilerDriver library, and change
the build system accordingly. Makes it easier for projects using LLVM to build
their own llvmc-based drivers.

Tested with objdir != srcdir.

llvm-svn: 65821
2009-03-02 09:01:14 +00:00
Bill Wendling
b46b800ce0 Random formatting changes.
llvm-svn: 65815
2009-03-02 07:54:14 +00:00
Bill Wendling
b707c17bf4 Fix typos.
llvm-svn: 65813
2009-03-02 07:42:15 +00:00
Bill Wendling
18ab6088d8 Change </pp> to </p>.
llvm-svn: 65804
2009-03-02 04:28:57 +00:00
Bill Wendling
187e889dab - Use "real-world applications" instead of just "real applications".
- Verification Fixes.

llvm-svn: 65803
2009-03-02 04:28:18 +00:00
Gordon Henriksen
34de4eed33 Make some improvements to the GC docs.
Also, drop reference to the half-baked runtime interface.

llvm-svn: 65802
2009-03-02 03:47:20 +00:00
Gordon Henriksen
ba66b036b5 Drop toy GC runtime.
llvm-svn: 65801
2009-03-02 03:46:48 +00:00
Chris Lattner
e2117f1ecb remove empty section
llvm-svn: 65800
2009-03-02 03:24:41 +00:00
Chris Lattner
1b279d2378 more englishification
llvm-svn: 65799
2009-03-02 03:24:11 +00:00
Chris Lattner
0f9e9e7719 start translating this into Engrish and organizing it.
llvm-svn: 65797
2009-03-02 02:37:32 +00:00
Nate Begeman
6b41d33726 Fix a problem with DAGCombine on 64b targets where folding
extracts + build_vector into a shuffle would fail, because the
type of the new build_vector would not be legal.  Try harder to
create a legal build_vector type.  Note: this will be totally 
irrelevant once vector_shuffle no longer takes a build_vector for
shuffle mask.

New:
_foo:
	xorps	%xmm0, %xmm0
	xorps	%xmm1, %xmm1
	subps	%xmm1, %xmm1
	mulps	%xmm0, %xmm1
	addps	%xmm0, %xmm1
	movaps	%xmm1, 0

Old:
_foo:
	xorps	%xmm0, %xmm0
	movss	%xmm0, %xmm1
	xorps	%xmm2, %xmm2
	unpcklps	%xmm1, %xmm2
	pshufd	$80, %xmm1, %xmm1
	unpcklps	%xmm1, %xmm2
	pslldq	$16, %xmm2
	pshufd	$57, %xmm2, %xmm1
	subps	%xmm0, %xmm1
	mulps	%xmm0, %xmm1
	addps	%xmm0, %xmm1
	movaps	%xmm1, 0

llvm-svn: 65791
2009-03-01 23:44:07 +00:00
Chris Lattner
cccb2fb989 move gold plugin next to LTO doc in the subsystem section
llvm-svn: 65790
2009-03-01 23:42:51 +00:00
Nick Lewycky
b999b7b64e Add a quickstart example.
llvm-svn: 65789
2009-03-01 21:55:10 +00:00
Nick Lewycky
1b26d345cc Close list item tag, to conform with the style in this file. It's optional
anyways.

llvm-svn: 65787
2009-03-01 21:07:44 +00:00
Nick Lewycky
5c799fd8dd Add the gold plugin page to the documentation index!
llvm-svn: 65786
2009-03-01 21:06:42 +00:00
Nick Lewycky
57d7512427 Cleanup the description of flags to llvm-gcc. Also remove stray text in the
attribution.

llvm-svn: 65785
2009-03-01 20:58:07 +00:00
Nick Lewycky
4c751eeddf Don't forget the important part. llvm-gcc -use-gold-plugin passes the right
options to gold.

llvm-svn: 65783
2009-03-01 18:48:53 +00:00
Mikhail Glushenkov
6336c61b2c Sprinkle llvmc notes with <tt>.
Also removes some trailing whitespace.

llvm-svn: 65781
2009-03-01 18:09:47 +00:00
Gabor Greif
3f56efbf04 Another sentinel optimization. This one should always
be a win, since almost every interesting function has at least one Argument.

llvm-svn: 65778
2009-03-01 17:13:15 +00:00
Gabor Greif
dc34b050a2 Reuse a technique (pioneered for BasicBlocks) of superposing ilist with
its sentinel. This is quite a win when a function really has a basic block.                  
When the function is just a declaration (and stays so) the old way did not
allocate a sentinel. So this change is most beneficial when the ratio of
function definition to declaration is high. I.e. linkers etc. Incidentally  
these are the most resource demanding applications, so I expect that the
reduced malloc traffic, locality and space savings outweigh the cost of
addition of two pointers to Function.

llvm-svn: 65776
2009-03-01 16:38:10 +00:00
Duncan Sands
b55953cfc0 Functions marked malloc are noalias return.
llvm-svn: 65775
2009-03-01 16:19:31 +00:00
Duncan Sands
2efa31c91e Tweak this a bit.
llvm-svn: 65772
2009-03-01 15:19:03 +00:00
Duncan Sands
2a1baecb38 Adjust this test for recent llvm-gcc changes.
llvm-svn: 65771
2009-03-01 15:01:51 +00:00
Nick Lewycky
329a7285b4 Fix grammar.
llvm-svn: 65769
2009-03-01 09:51:07 +00:00
Gabor Greif
9849b23219 fix a comment
llvm-svn: 65768
2009-03-01 09:45:52 +00:00
Gabor Greif
9b3fe3d625 Fix a typo. Thanks baldrick!
llvm-svn: 65767
2009-03-01 09:43:41 +00:00
Nick Lewycky
f4cf146789 First pass at a document describing how to achieve LTO on Linux with gold.
llvm-svn: 65766
2009-03-01 09:38:29 +00:00
Duncan Sands
ac0ff99803 Another point to mention.
llvm-svn: 65765
2009-03-01 08:26:19 +00:00
Bill Wendling
0dd6d44518 Temporarily revert r65755. It was causing failures in the self-hosting
testsuite:

Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/dg.exp ...
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/nancvt.ll
Failed with exit(1) at line 2
while running: grep 2147027116 nancvt.ll.tmp | count 3
count: expected 3 lines and got        0.
child process exited abnormally
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/vec_ins_extract.ll
Failed with exit(1) at line 1
while running:  llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/vec_ins_extract.ll |  opt -scalarrepl -instcombine |   llc -march=x86 -mcpu=yonah | not /usr/bin/grep sub.*esp
      subl      $28, %esp
      subl      $28, %esp
child process exited abnormally

And more.

llvm-svn: 65758
2009-03-01 03:55:12 +00:00
Chris Lattner
543d2057f9 add some llvmc notes from Mikhail
llvm-svn: 65756
2009-03-01 02:30:21 +00:00
Chris Lattner
7228db7662 hoist the check for alloca size up so that it controls CanConvertToScalar
as well as isSafeAllocaToScalarRepl.

llvm-svn: 65755
2009-03-01 02:26:47 +00:00
Evan Cheng
276f9b02c5 Minor optimization:
Look for situations like this:                                                                                                                                                              
%reg1024<def> = MOV r1                                                                                                                                                                      
%reg1025<def> = MOV r0                                                                                                                                                                      
%reg1026<def> = ADD %reg1024, %reg1025                                                                                                                                                      
r0            = MOV %reg1026                                                                                                                                                                
Commute the ADD to hopefully eliminate an otherwise unavoidable copy.

llvm-svn: 65752
2009-03-01 02:03:43 +00:00
Chris Lattner
50be1d46f2 tweak this to accept asmprinter changes. I have no way to verify this, hopefully
the buildbot will work.

llvm-svn: 65750
2009-03-01 01:28:40 +00:00
Chris Lattner
0cefb564d4 simplify handling "don't print top level name" processing, so that we get
stuff like %A = type { %A*} instead of an upref.

llvm-svn: 65748
2009-03-01 01:16:21 +00:00
Bob Wilson
7482f84ae6 Combine PPC's GetConstantBuildVectorBits and isConstantSplat functions to a new
method in a BuildVectorSDNode "pseudo-class".

llvm-svn: 65747
2009-03-01 01:13:55 +00:00