| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Ed Schouten!
llvm-svn: 65882
|
|
|
|
|
|
| |
clean up when using variable length arrays in llvm-gcc.
llvm-svn: 65832
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
be a win, since almost every interesting function has at least one Argument.
llvm-svn: 65778
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
as well as isSafeAllocaToScalarRepl.
llvm-svn: 65755
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
stuff like %A = type { %A*} instead of an upref.
llvm-svn: 65748
|
|
|
|
|
|
| |
method in a BuildVectorSDNode "pseudo-class".
llvm-svn: 65747
|
|
|
|
|
|
| |
types. This was reading the uint for the keyword after the token was advanced.
llvm-svn: 65743
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type opaque ; type %0
%C = type { %0, %0 }
instead of:
%C = type { opaque, opaque }
when appropriate.
llvm-svn: 65742
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
stripped .bc file, it didn't make any attempt to try to reuse anonymous types.
This causes an amazing type explosion due to types getting duplicated everywhere
they are referenced and other problems.
This also caused correctness issues, because opaque types are unique for each time
they are uttered in the file. This means that stripping a .bc file could produce
a .ll file that could not be assembled (e.g. 2009-02-28-StripOpaqueName.ll).
This patch fixes both of these issues.
llvm-svn: 65738
|
|
|
|
|
|
| |
AsmWriter.cpp method.
llvm-svn: 65736
|
|
|
|
| |
llvm-svn: 65735
|
|
|
|
|
|
| |
stuff in AsmWriter.cpp for Type::getDescription().
llvm-svn: 65734
|
|
|
|
| |
llvm-svn: 65733
|
|
|
|
| |
llvm-svn: 65729
|
|
|
|
| |
llvm-svn: 65724
|
|
|
|
|
|
| |
print etc.
llvm-svn: 65723
|
|
|
|
| |
llvm-svn: 65722
|
|
|
|
| |
llvm-svn: 65721
|
|
|
|
|
|
| |
the old std::ostream version.
llvm-svn: 65720
|
|
|
|
|
|
| |
eliminate redundant opaque handling code.
llvm-svn: 65716
|
|
|
|
| |
llvm-svn: 65715
|
|
|
|
| |
llvm-svn: 65714
|
|
|
|
|
|
| |
be a smallvector instead of vector.
llvm-svn: 65713
|
|
|
|
| |
llvm-svn: 65712
|
|
|
|
| |
llvm-svn: 65711
|
|
|
|
|
|
| |
and move all related stuff to it.
llvm-svn: 65710
|
|
|
|
|
|
|
|
|
| |
@a = internal constant void bitcast(<0 x i8> <> to void)
^
Fixes PR3685
llvm-svn: 65698
|
|
|
|
| |
llvm-svn: 65679
|
|
|
|
| |
llvm-svn: 65662
|
|
|
|
|
|
| |
directly, instsad of an DIArray of all argument types.
llvm-svn: 65643
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pic | declaration | linkage | visibility |
!pic | declaration | external | default | tls1.ll tls2.ll | local exec
pic | declaration | external | default | tls1-pic.ll tls2-pic.ll | general dynamic
!pic | !declaration | external | default | tls3.ll tls4.ll | initial exec
pic | !declaration | external | default | tls3-pic.ll tls4-pic.ll | general dynamic
!pic | declaration | external | hidden | tls7.ll tls8.ll | local exec
pic | declaration | external | hidden | X | local dynamic
!pic | !declaration | external | hidden | tls9.ll tls10.ll | local exec
pic | !declaration | external | hidden | X | local dynamic
!pic | declaration | internal | default | tls5.ll tls6.ll | local exec
pic | declaration | internal | default | X | local dynamic
The ones marked with an X have not been implemented since local dynamic is not implemented.
llvm-svn: 65632
|
|
|
|
|
|
|
|
|
| |
by superposition.
This looks dangerous, but isn't because the sentinel is accessed in special way only,
namely the Next and Prev fields of it, and these are guaranteed to exist.
llvm-svn: 65626
|
|
|
|
|
|
| |
are always set by reference on the path that uses them.) No functional change.
llvm-svn: 65621
|
|
|
|
| |
llvm-svn: 65620
|
|
|
|
|
|
|
|
| |
possibly for the reason suggested by the comment.
No wonder it didn't work very well. This unblocks
bootstrap with assertions on ppc.
llvm-svn: 65601
|
|
|
|
|
|
| |
implicit_def's.
llvm-svn: 65592
|
|
|
|
|
|
| |
conditional branch predecessors.
llvm-svn: 65509
|
|
|
|
|
|
| |
this could happen.
llvm-svn: 65501
|
|
|
|
|
|
| |
intrinsics expect the high bits will not be modified.
llvm-svn: 65499
|
|
|
|
|
|
| |
already marked livein.
llvm-svn: 65498
|
|
|
|
|
|
| |
Sorry, it's impossible to reduce a sensible test case. It basically requires the moon and stars to align in order to cause a failure.
llvm-svn: 65497
|
|
|
|
| |
llvm-svn: 65482
|
|
|
|
|
|
|
|
|
|
|
| |
overly long ints, e.g. i96, into pieces at PHIs
and the nodes that feed into them; however big-endian
reverses the order of the pieces (for some reason), and
wasn't doing it the same way on both sides, so
the pieces didn't match and runtime failures ensued.
Fixes 188.ammp and sqlite3 on ppc32.
llvm-svn: 65481
|
|
|
|
| |
llvm-svn: 65468
|
|
|
|
| |
llvm-svn: 65464
|