Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: m-labs/llvm-lm32
base: c75b03d
...
head fork: m-labs/llvm-lm32
compare: 20d38b0
Checking mergeability… Don't worry, you can still create the pull request.
Commits on Jun 08, 2011
Akira Hatanaka Reorganize code in MipsTargetLowering::LowerCall to improve readability.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132756 91177308-0d34-0410-b5e6-96231b3b80d8
3d21c24
Akira Hatanaka Fix bug in lowering of DYNAMIC_STACKALLOC nodes. The correct offset o…
…f the

dynamically allocated stack area was not set.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132758 91177308-0d34-0410-b5e6-96231b3b80d8
69b9044
Cameron Zwarich Fix an assymmetry between ConvertScalar_ExtractValue and ConvertScala…
…r_InsertValue. The

former was using the size of the entire alloca, whereas the latter was correctly using
the allocated size of the immediate type being converted (which may differ from the size
of the alloca). This fixes PR10082.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132759 91177308-0d34-0410-b5e6-96231b3b80d8
0398d61
Eric Christopher Add a parameter to CCState so that it can access the MachineFunction.
No functional change.

Part of PR6965


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132763 91177308-0d34-0410-b5e6-96231b3b80d8
471e422
Commits on Jun 09, 2011
Eric Christopher If the alignment of the byval argument is greater than the alignment
of the frame then increase the maximum alignment of the frame to
match.

Fixes PR6965


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132764 91177308-0d34-0410-b5e6-96231b3b80d8
efe1290
Cameron Zwarich Fix PR10104 by adding a bounds check on a vector element access check…
…. It was

assuming that all offsets are legal vector accesses, and thus trying to access
the float member of { <2 x float>, float } as the 3rd element of the first
member.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132766 91177308-0d34-0410-b5e6-96231b3b80d8
96cc1d0
Cameron Zwarich Remove a vacuous condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132767 91177308-0d34-0410-b5e6-96231b3b80d8
c4f7820
Akira Hatanaka Initial support for inline asm memory operand constraints.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132768 91177308-0d34-0410-b5e6-96231b3b80d8
c53cc48
Eric Christopher Have the JIT tutorial use IRBuilder for the IR.
Patch by Jake Waskett!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132770 91177308-0d34-0410-b5e6-96231b3b80d8
c3a627d
Eric Christopher Temporarily revert 132764 to see if it fixes the Windows buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132771 91177308-0d34-0410-b5e6-96231b3b80d8
7b3f72f
Chris Lattner add another sandybridge alias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132772 91177308-0d34-0410-b5e6-96231b3b80d8
78a113c
@CunningBaldrick CunningBaldrick Enable printf() to iprintf() optimization for the TCE target.
Patch by Pekka Jaaskelainen. 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132774 91177308-0d34-0410-b5e6-96231b3b80d8
9fe8897
@espindola espindola Improve the handling of available_externally and llvm.global_ctors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132775 91177308-0d34-0410-b5e6-96231b3b80d8
d896d41
Eric Christopher Recommit r132764 since it didn't cause the windows buildbot failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132776 91177308-0d34-0410-b5e6-96231b3b80d8
622ab4a
Eric Christopher Speculatively revert 132758 and 132768 to try to fix the Windows buil…
…dbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132777 91177308-0d34-0410-b5e6-96231b3b80d8
6f3661f
@stoklund stoklund Remove custom allocation order boilerplate that is no longer needed.
The register allocators automatically filter out reserved registers and
place the callee saved registers last in the allocation order, so custom
methods are no longer necessary just for that.

Some targets still use custom allocation orders:

ARM/Thumb: The high registers are removed from GPR in thumb mode. The
NEON allocation orders prefer to use non-VFP2 registers first.

X86: The GR8 classes omit AH-DH in x86-64 mode to avoid REX trouble.

SystemZ: Some of the allocation orders are omitting R12 aliases without
explanation. I don't understand this target well enough to fix that. It
looks like all the boilerplate could be removed by reserving the right
registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132781 91177308-0d34-0410-b5e6-96231b3b80d8
2a9d1ca
Bob Wilson Add special-case range checking for VCVT_N intrinsic immediate operands.
Radar 9558930.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132782 91177308-0d34-0410-b5e6-96231b3b80d8
e450a00
@gkistanova gkistanova Added dg.exp to run FrontendC ARM-dependent tests; updated inline-asm…
…-multichar.c test per this change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132785 91177308-0d34-0410-b5e6-96231b3b80d8
372ab67
@stoklund stoklund Move TableGen's register bank classes to their own source file.
I'll be moving some more code there to gather all of the
register-specific stuff in one place. Currently it is shared between
CodeGenTarget and RegisterInfoEmitter.

The plan is that CodeGenRegisters can compute the full register bank
structure while RegisterInfoEmitter only will handle the printing part.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132788 91177308-0d34-0410-b5e6-96231b3b80d8
f1e2b23
Eli Friedman Add a check to make sure we don't crash with strange configurations w…
…here we do fast-isel, then try to fold instructions. PR10092.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132789 91177308-0d34-0410-b5e6-96231b3b80d8
aebc3c1
Jason W Kim Remove an uneeded switch - Turns out reloc results are identical w/o …
…the switch. (face+palm)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132790 91177308-0d34-0410-b5e6-96231b3b80d8
bebd44a
Eli Friedman Revert 132789; it breaks tests. My mistake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132795 91177308-0d34-0410-b5e6-96231b3b80d8
6f19c67
@rjmccall rjmccall Teach the CallGraph to ignore calls to intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132797 91177308-0d34-0410-b5e6-96231b3b80d8
e669d83
@espindola espindola Refactor some checks into shouldTailDuplicate. Update comments.
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132798 91177308-0d34-0410-b5e6-96231b3b80d8
54c2562
@rjmccall rjmccall SplitCriticalEdge can sometimes split the edge from an invoke to a la…
…nding

pad, separating the exception and selector calls from the new lpad.  Teaching
it not to do that, or to properly adjust the CFG afterwards, is out of
scope because it would require the other edges to the landing pad to be split
as well (effectively).  Instead, just recover from the most likely cases
during inlining.  The best long-term solution is to change the exception
representation and commit to either requiring or not requiring the more
complex edge-splitting logic;  this is just a shorter-term hack.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132799 91177308-0d34-0410-b5e6-96231b3b80d8
1dd94bb
Johnny Chen Modify comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132800 91177308-0d34-0410-b5e6-96231b3b80d8
e5dfa8f
@rdivacky rdivacky Fix emission of PPC64 assembler on non-darwin platforms by splitting
VK_PPC_{HA,LO}16 into darwin and gas variants.

Darwin wants {ha,lo}16(symbol) while gnu as wants symbol@{ha,l}.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132802 91177308-0d34-0410-b5e6-96231b3b80d8
a100074
@rjmccall rjmccall When deleting a basic block, remove call edges only for non-intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132803 91177308-0d34-0410-b5e6-96231b3b80d8
ca5bec2
@espindola espindola A PHI in this basic block is a use in another basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132805 91177308-0d34-0410-b5e6-96231b3b80d8
c2e9a50
@espindola espindola AnalyzeBranch modifies the bb, but we don't want to modify a bb with
eh edges. Swap the order of the checks to avoid it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132806 91177308-0d34-0410-b5e6-96231b3b80d8
a899b22
Eli Friedman Change this DAGCombine to build AND of SHR instead of SHR of AND; thi…
…s matches the ordering we prefer in instcombine. Part of rdar://9562809.

The potential DAGCombine which enforces this more generally messes up some other very fragile patterns, so I'm leaving that alone, at least for now.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132809 91177308-0d34-0410-b5e6-96231b3b80d8
2a6d9eb
Cameron Zwarich A CCState was being created without setting whether it is in the Call…
… or Prologue state,

causing an assertion failure downstream. This fixes <rdar://problem/9562908>.

This really seems like it should always be set at CCState creation time, so mistakes like
this can never happen. I'll take a look at doing that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132811 91177308-0d34-0410-b5e6-96231b3b80d8
a2e9795
@espindola espindola Also consider phi nodes when deciding if a register is live out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132814 91177308-0d34-0410-b5e6-96231b3b80d8
0f28c3f
Eli Friedman Chris fixed this README a while back by changing how clang generates …
…code for structs like the given struct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132815 91177308-0d34-0410-b5e6-96231b3b80d8
6ad0468
@espindola espindola On last fix to the early tail duplication.
With this I am able to bootstrap clang with early tail duplication enabled
for any small bb and setting tail-dup-size to a relatively large value(8) to
stress this code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132816 91177308-0d34-0410-b5e6-96231b3b80d8
689d7d5
@espindola espindola Avoid a gcc warning about multiline comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132821 91177308-0d34-0410-b5e6-96231b3b80d8
4d7b457
@espindola espindola Make the optional verification step more strict.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132822 91177308-0d34-0410-b5e6-96231b3b80d8
d3f4eea
Commits on Jun 10, 2011
Eli Friedman Add a simple test which makes sure folding immediate float zero to a …
…memory operand works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132824 91177308-0d34-0410-b5e6-96231b3b80d8
88b2af7
Chad Rosier Ensure that EmitGlobalVariable is correctly differentiating between d…
…eclarations

and definitions when emitting global variables.  This was causing global 
declarations to be emitted as if they were definitions.
Fixes <rdar://problem/9429892>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132825 91177308-0d34-0410-b5e6-96231b3b80d8
348d542
Eli Friedman PR10092 (second try): Don't crash on a load without a momoperand; fas…
…t-isel creates loads like this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132826 91177308-0d34-0410-b5e6-96231b3b80d8
be5cbaa
Chad Rosier Adding a test case for revision 132825.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132830 91177308-0d34-0410-b5e6-96231b3b80d8
86431e9
@gkistanova gkistanova Changed condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132834 91177308-0d34-0410-b5e6-96231b3b80d8
0d6d34c
@gkistanova gkistanova Reverted r132785. It seems this test needs more research.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132836 91177308-0d34-0410-b5e6-96231b3b80d8
993200d
Eli Friedman Add -mattr=+sse2 to make the buildbots happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132839 91177308-0d34-0410-b5e6-96231b3b80d8
5e05dee
@rlsosborne rlsosborne Fix example code in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132844 91177308-0d34-0410-b5e6-96231b3b80d8
c610017
@stoklund stoklund Move some sub-register index calculations to CodeGenRegisters.cpp
Create a new CodeGenRegBank class that will eventually hold all the code
that computes the register structure from Records.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132849 91177308-0d34-0410-b5e6-96231b3b80d8
dc29c44
@espindola espindola Remove duplicated test.
Thanks Bob Wilson for noticing it!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132851 91177308-0d34-0410-b5e6-96231b3b80d8
9a9a3a5
Cameron Zwarich Remove a pointless const_cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132852 91177308-0d34-0410-b5e6-96231b3b80d8
cbd09bd
Cameron Zwarich Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132853 91177308-0d34-0410-b5e6-96231b3b80d8
a0f803a
Cameron Zwarich Rename the ParmContext enum values to make a bit more sense and add a…
… small

comment on their meaning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132854 91177308-0d34-0410-b5e6-96231b3b80d8
a50760f
Cameron Zwarich Provide an ARMCCState subclass of CCState so that ARM clients will al…
…ways set

CallOrPrologue correctly and eliminate the existing setter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132856 91177308-0d34-0410-b5e6-96231b3b80d8
a86686e
@espindola espindola Removed tabs. Also fixed my editor...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132857 91177308-0d34-0410-b5e6-96231b3b80d8
33b4658
@isanbard isanbard Install libprofile_rt.dylib where it's more available for gcov support.
<rdar://problem/9583891>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132860 91177308-0d34-0410-b5e6-96231b3b80d8
a1f21e6
Dan Gohman Initialize BasicAA's AliasCache to set it to use fewer buckets by
default, since it usually has very few elements. This speeds up
alias queries in many cases, because AliasCache.clear() doesn't
have to visit as many buckets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132862 91177308-0d34-0410-b5e6-96231b3b80d8
9a09ca3
Eric Christopher 80-col cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132863 91177308-0d34-0410-b5e6-96231b3b80d8
b3e009a
Eli Friedman Add full x86 fast-isel support for memcpy and memset.
rdar://9431466



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132864 91177308-0d34-0410-b5e6-96231b3b80d8
25255cb
Commits on Jun 11, 2011
@stoklund stoklund Move the list of registers into CodeGenRegBank.
Also move the sub-register index computations from RegisterInfoEmitter
into CodeGenRegBank.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132865 91177308-0d34-0410-b5e6-96231b3b80d8
b5923db
Andrew Trick Branch profiling: floating-point avoidance.
Patch by: Jakub Staszak!

Introduces BranchProbability. Changes unsigned to uint32_t all over and
uint64_t only when overflow is expected.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132867 91177308-0d34-0410-b5e6-96231b3b80d8
f289df2
Eli Friedman Make sure to pass OpFlags into MachineInstrBuilder::addExternalSymbol…
…; the

memcpy/memset symbol doesn't get marked up correctly in PIC modes otherwise.
Should fix llvm-x86_64-linux-checks buildbot.  Followup to r132864.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132869 91177308-0d34-0410-b5e6-96231b3b80d8
8a37aba
Chad Rosier Typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132871 91177308-0d34-0410-b5e6-96231b3b80d8
e4c7056
Chad Rosier Revert r132871.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132872 91177308-0d34-0410-b5e6-96231b3b80d8
8c1ec5a
@isanbard isanbard Reformatting. Moving class definitions to more natural places. No fun…
…ctionalogical changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132876 91177308-0d34-0410-b5e6-96231b3b80d8
3bdc190
Commits on Jun 12, 2011
Charles Davis Put FrameSetup flag on x86 instructions that set up the call frame. No
functionality change.

Later on, we'll use the flag to emit SEH pseudo-ops that describe how the
call frame was built.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132880 91177308-0d34-0410-b5e6-96231b3b80d8
aff232a
@stoklund stoklund Compute lists of sub-regs, super-regs, and overlapping regs.
Besides moving structural computations to CodeGenRegisters.cpp, this
also well-defines the order of these lists:

- Sub-register lists come from a pre-order traversal of the graph
  defined by the SubRegs lists in the .td files.

- Super-register lists are topologically ordered so no register comes
  before any of its sub-registers. When the sub-register graph is not a
  tree, independent super-registers appear in numerical order.

- Lists of overlapping registers are ordered according to register
  number.

This reverses the order of the super-regs lists, but nobody was
depending on that. The previous order of the overlaps lists was odd, and
it may have depended on the precise behavior of std::stable_sort.

The old computations are still there, but will be removed shortly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132881 91177308-0d34-0410-b5e6-96231b3b80d8
026dc22
@espindola espindola AnalyzeBranch doesn't change which successors a bb has, just the order
we try to branch to them.

Before we were creating successor lists with duplicated entries. Fixing that
found a bug in isBlockOnlyReachableByFallthrough that would causes it to
return the wrong answer for

-----------
...
jne foo
jmp bar

foo:
----------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132882 91177308-0d34-0410-b5e6-96231b3b80d8
4509ec4
@espindola espindola Fix silly bug I introduce in the previous commit. Fixes debug builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132883 91177308-0d34-0410-b5e6-96231b3b80d8
571e20f
@espindola espindola Test for the previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132884 91177308-0d34-0410-b5e6-96231b3b80d8
c1e903c
@espindola espindola Really fix the fall-through logic.
Add a triple to the tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132885 91177308-0d34-0410-b5e6-96231b3b80d8
1edc08b
@stoklund stoklund Extract the generateHashTable function.
The constant hash tables for sub-registers and overlaps are generated
the same way, so extract a function to generate and print the hash
table.

Also use the information computed by CodeGenRegisters.cpp instead of the
locally data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132886 91177308-0d34-0410-b5e6-96231b3b80d8
4091b05
@stoklund stoklund Remove now dead code.
These computations have been moved to CodeGenRegisters.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132887 91177308-0d34-0410-b5e6-96231b3b80d8
bf710cc
@stoklund stoklund Tweak hash function and compress hash tables.
Make the hash tables as small as possible while ensuring that all
lookups can be done in less than 8 probes.

Cut the aliases hash table in half by only storing a < b pairs - it
is a symmetric relation.

Use larger multipliers on the initial hash function to ensure that it
properly covers the whole table, and to resolve some clustering in the
very regular ARM register bank.

This reduces the size of most of these tables by 4x - 8x. For instance,
the ARM tables shrink from 48 KB to 8 KB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132888 91177308-0d34-0410-b5e6-96231b3b80d8
b95fd2d
@nadavrot nadavrot Bugfix: When looking for a legal vector type, stop looking when a non…
…-simple

element type is found.
This fix addresses some of the tests in Duncan's testcase (forthcoming).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132891 91177308-0d34-0410-b5e6-96231b3b80d8
65255b9
@nadavrot nadavrot Improve the generated code by getCopyFromPartsVector for promoted int…
…eger types.

Instead of scalarizing, and doing an element-by-element truncat, use vector
truncate.
Add support for scalarization of vectors:  i8 -> <1 x i1> (from Duncan's
testcase).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132892 91177308-0d34-0410-b5e6-96231b3b80d8
b05f14b
@nadavrot nadavrot Fix a bug in the calculation of the vectorTypeBreakdown into register…
…s. Odd

types such as i33 were rounded to i32. Originated from Duncan's testcase.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132893 91177308-0d34-0410-b5e6-96231b3b80d8
0c3e678
@d0k d0k Happy new year.
Only 163 days late!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132895 91177308-0d34-0410-b5e6-96231b3b80d8
b73cd94
@d0k d0k Simplify code. No functionality changes, name changes aside.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132896 91177308-0d34-0410-b5e6-96231b3b80d8
7e7c9cc
@d0k d0k InstCombine: Shrink ((zext X) & C1) == C2 to fold away the cast if th…
…e "zext" and the "and" have one use.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132897 91177308-0d34-0410-b5e6-96231b3b80d8
ffd0ae6
Commits on Jun 13, 2011
@espindola espindola Fix invalid uses of Twine. Hopefully this fixes the problem that Taku…
…mi is

having.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132898 91177308-0d34-0410-b5e6-96231b3b80d8
fb66f47
@stoklund stoklund Include callee-saved registers in debug output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132899 91177308-0d34-0410-b5e6-96231b3b80d8
687397c
@stoklund stoklund Be less aggressive about hinting in RAFast.
In particular, don't spill dirty registers only to satisfy a hint. It is
not worth it.

The attached test case provides an example where the fast allocator
would spill a register when other registers are available.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132900 91177308-0d34-0410-b5e6-96231b3b80d8
5e5ed44
@nlewycky nlewycky It's possible that an all-zero GEP may be used as the argument to lif…
…etime

intrinsics. In fact, we'll optimize a bitcast to that when possible. Detect it
when looking for the lifetime intrinsics.

No test case, noticed by inspection.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132906 91177308-0d34-0410-b5e6-96231b3b80d8
9a488a8
@Bigcheese Bigcheese Fix spelling and sort CMakeLists.txt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132908 91177308-0d34-0410-b5e6-96231b3b80d8
cbda61a
@Bigcheese Bigcheese Add Object/Error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132909 91177308-0d34-0410-b5e6-96231b3b80d8
bf58996
@Bigcheese Bigcheese Add Binary class. This is a cleaner parent than ObjectFile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132910 91177308-0d34-0410-b5e6-96231b3b80d8
fc9ec69
@Bigcheese Bigcheese Make Binary the parent of ObjectFile and update children to new inter…
…face.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132911 91177308-0d34-0410-b5e6-96231b3b80d8
69aec36
@Bigcheese Bigcheese Modify llvm-nm to use new Binary creation method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132912 91177308-0d34-0410-b5e6-96231b3b80d8
bc437eb
@Bigcheese Bigcheese Revert the last two commits in the series. r132911, r132912.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132913 91177308-0d34-0410-b5e6-96231b3b80d8
5e45dc4
@d0k d0k Revert r132910 and r132909 on behalf of Michael. They didn't build wi…
…th clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132914 91177308-0d34-0410-b5e6-96231b3b80d8
aa99bea
@d0k d0k InstCombine: Fold A-b == C --> b == A-C if A and C are constants.
The backend already knew this trick.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132915 91177308-0d34-0410-b5e6-96231b3b80d8
e7fdcad
Chris Lattner mention graph vis isn't available in Release builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132916 91177308-0d34-0410-b5e6-96231b3b80d8
83f9467
@nadavrot nadavrot Fix a bug in FindMemType. When widening vector loads, use a wider mem…
…ory type

only if the number of packed elements is a power of two.
Bug found in Duncan's testcase.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132923 91177308-0d34-0410-b5e6-96231b3b80d8
00404bf
@d0k d0k Move class into an anonymous namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132925 91177308-0d34-0410-b5e6-96231b3b80d8
afa88ea
Stuart Hastings Avoid fusing bitcasts with dynamic allocas if the amount-to-allocate
might overflow.  Re-typing the alloca to a larger type (e.g. double)
hoists a shift into the alloca, potentially exposing overflow in the
expression.  rdar://problem/9265821


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132926 91177308-0d34-0410-b5e6-96231b3b80d8
7ac8f8f
@isanbard isanbard Add compatibility version when compiling the Apple way.
<rdar://problem/9600408>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132929 91177308-0d34-0410-b5e6-96231b3b80d8
1922a11
Evan Cheng Aliased flag options should be directed to stdout, not stderr to be c…
…onsistent. Patch by Julien Lerouge.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132931 91177308-0d34-0410-b5e6-96231b3b80d8
ff276b4
Jim Grosbach Fix coordination for using R4 in Thumb1 as a scratch for SP restore.
The logic for reserving R4 for use as a scratch needs to match that for
actually using it. Also, it's not necessary for immediate <=508, so adjust
the value checked.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132934 91177308-0d34-0410-b5e6-96231b3b80d8
7980f61
Cameron Zwarich Remove an argument that is always true.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132936 91177308-0d34-0410-b5e6-96231b3b80d8
dd68912
Cameron Zwarich Have SRoA explicitly track the kind of scalar it is promoting. This i…
…s pretty

spartan right now, but I plan to encode more information in this enum to improve
the correctness and reliability of SRoA. At least this first pass makes it
possible to make VectorTy an actual VectorType.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132937 91177308-0d34-0410-b5e6-96231b3b80d8
deb74f2
Cameron Zwarich Remove a vacuous check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132938 91177308-0d34-0410-b5e6-96231b3b80d8
9837a5c
Cameron Zwarich Remove the HadAVector instance variable and replace it with a use of …
…ScalarKind.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132939 91177308-0d34-0410-b5e6-96231b3b80d8
5179782
Cameron Zwarich Rename MergeInType to MergeInTypeForLoadOrStore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132940 91177308-0d34-0410-b5e6-96231b3b80d8
c0e2607
Jim Grosbach Clean up a few 80 column violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132946 91177308-0d34-0410-b5e6-96231b3b80d8
f921c0f
Cameron Zwarich Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132952 91177308-0d34-0410-b5e6-96231b3b80d8
15cd80c
Commits on Jun 14, 2011
@nlewycky nlewycky Use Value::stripPointerCasts instead of reinventing part of the wheel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132954 91177308-0d34-0410-b5e6-96231b3b80d8
708c1ac
Evan Cheng Update BitcodeWriter to match recent Triple changes. rdar://9603399
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132959 91177308-0d34-0410-b5e6-96231b3b80d8
e889c69
@rjmccall rjmccall Use IRBuilder to make our intrinsic calls in the inliner so that we p…
…ick up

line info correctly.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132961 91177308-0d34-0410-b5e6-96231b3b80d8
c975a51
@rjmccall rjmccall Test case for r132797.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132962 91177308-0d34-0410-b5e6-96231b3b80d8
410eac5
@isanbard isanbard Heuristic: If the number of operands in the alias are more than the n…
…umber of

operands in the aliasee, don't print the alias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132963 91177308-0d34-0410-b5e6-96231b3b80d8
740e5b3
@nlewycky nlewycky Fit banner in 80-col and adjust whitespace. No functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132964 91177308-0d34-0410-b5e6-96231b3b80d8
3c2f0a1
@espindola espindola Make the threshold used by branch folding softer. Before we would get a
sharp all or nothing transition when one extra predecessor was added. Now
we still test first ones for merging.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132974 91177308-0d34-0410-b5e6-96231b3b80d8
3a42565
@bcardosolopes bcardosolopes Add one more argument to the prefetch intrinsic to indicate whether i…
…t's a data

or instruction cache access. Update the targets to match it and also teach
autoupgrade.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132976 91177308-0d34-0410-b5e6-96231b3b80d8
9a76733
@bcardosolopes bcardosolopes Since ARM's prefetch implementation predicted the presence of a instr…
…uction

cache prefetch and now that the info from "prefetch" to "ARMPreload" is present,
only add a testcase for PLI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132978 91177308-0d34-0410-b5e6-96231b3b80d8
79abd1c
@espindola espindola Implement Jakob's suggestion on how to detect fall thought without ca…
…lling

AnalyzeBranch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132981 91177308-0d34-0410-b5e6-96231b3b80d8
f5b5c51
Cameron Zwarich Be more obvious about what is being tested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132982 91177308-0d34-0410-b5e6-96231b3b80d8
5b93d3c
@nadavrot nadavrot Disable trunc-store simplification on vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132984 91177308-0d34-0410-b5e6-96231b3b80d8
c7cb7ed
@nadavrot nadavrot Add a testcase for checking the integer-promotion of many different v…
…ector

types (with power of two types such as 8,16,32 .. 512).

Fix a bug in the integer promotion of bitcast nodes. Enable integer expanding
only if the target of the conversion is an integer (when the type action is
scalarize).

Add handling to the legalization of vector load/store in cases where the saved
vector is integer-promoted.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132985 91177308-0d34-0410-b5e6-96231b3b80d8
c2492c2
@nadavrot nadavrot This testcase cause a failure on some bots. Remove the failing test u…
…ntil

further investigation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132986 91177308-0d34-0410-b5e6-96231b3b80d8
bfdbd00
@espindola espindola revert 132986 to see if the bots go green.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132988 91177308-0d34-0410-b5e6-96231b3b80d8
7a07083
@nadavrot nadavrot Add a testcase for #9623
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132991 91177308-0d34-0410-b5e6-96231b3b80d8
ebf69c3
@espindola espindola Add 132986 back, but avoid non-determinism if a bb address gets reused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132995 91177308-0d34-0410-b5e6-96231b3b80d8
f924dea
@stoklund stoklund Fix a compile time regression caused by too small hash tables.
Measure the worst case number of probes for a miss instead of the less
conservative number of probes required for an insertion.

Lower the limit to < 6 probes worst case.

This doubles the size of the ARM and X86 hash tables, other targets are
unaffected. LiveVariables runs 12% faster with this change.

<rdar://problem/9598545>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132999 91177308-0d34-0410-b5e6-96231b3b80d8
952036d
Dan Gohman Revert r132991. This test is failing on the
llvm-gcc-x86_64-linux-selfhost buildbot and others.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133000 91177308-0d34-0410-b5e6-96231b3b80d8
a3b9b00
Dan Gohman This test is still failing. Delete the rest of it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133001 91177308-0d34-0410-b5e6-96231b3b80d8
1ae4168
Evan Cheng Also recognize ARM v4t and v5e variants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133002 91177308-0d34-0410-b5e6-96231b3b80d8
a6eb256
@espindola espindola Partial revert of 132882.
Dan noted that this would work on the case shown on the commit message. I think
the case that was failing was a bb ending with a redundant conditional jump:

...
jne foo

foo:
...

I was unable to find any such case in the tests or in a debug build of clang,
so I will revert this part of the patch and watch the bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133004 91177308-0d34-0410-b5e6-96231b3b80d8
b8018d8
Eli Friedman Revert r133004 ; it's breaking nightly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133007 91177308-0d34-0410-b5e6-96231b3b80d8
0fc3015
@espindola espindola Add a test for the recent regression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133009 91177308-0d34-0410-b5e6-96231b3b80d8
29a3aa8
@jpbonn jpbonn Merge branch 'master' of http://llvm.org/git/llvm into mico32 3570b20
@jpbonn jpbonn Updated for latest LLVM head. 20d38b0