| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 136759
|
| |
|
|
|
|
|
|
|
| |
- use SmallVectorImpl& for the function argument.
- ignore the operands on the GEP, even if they aren't constant! Much as we
pretend the malloc succeeds, we pretend that malloc + whatever-you-GEP'd-by
is not null. It's magic!
llvm-svn: 136757
|
| |
|
|
|
|
| |
instructions at the moment.
llvm-svn: 136756
|
| |
|
|
|
|
|
|
|
| |
Don't replace a gep/bitcast with 'undef' because that will form a "free(undef)"
which in turn means "unreachable". What we wanted was a no-op. Instead, analyze
the whole tree and look for all the instructions we need to delete first, then
delete them second, not relying on the use_list to stay consistent.
llvm-svn: 136752
|
| |
|
|
|
|
| |
the function, because the UnwindInst is going away.
llvm-svn: 136751
|
| |
|
|
| |
llvm-svn: 136742
|
| |
|
|
|
|
| |
This information is not used for anything yet.
llvm-svn: 136741
|
| |
|
|
|
|
|
| |
With a 'FirstDef' field right there, it is very confusing that FirstUse
refers to an instruction that may be a def.
llvm-svn: 136739
|
| |
|
|
|
|
| |
Not especially pretty, but seems to work well enough. If this looks okay, I'll put together similar patches for Mips, PPC, and Alpha.
llvm-svn: 136737
|
| |
|
|
|
|
|
|
|
|
|
| |
This is either an invalid SlotIndex, or valno->def for the first value
defined inside the block. PHI values are not counted as defined inside
the block.
The FirstDef field will be used when estimating the cost of spilling
around a block.
llvm-svn: 136736
|
| |
|
|
| |
llvm-svn: 136735
|
| |
|
|
|
|
| |
malloc call.
llvm-svn: 136732
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PrefBoth constraint is used for blocks that ideally want a live-in
value both on the stack and in a register. This would be used by a block
that has a use before interference forces a spill.
Secondly, add the ChangesValue flag to BlockConstraint. This tells
SpillPlacement if a live-in value on the stack can be reused as a
live-out stack value for free. If the block redefines the virtual
register, a spill would be required for that.
This extra information will be used by SpillPlacement to more accurately
calculate spill costs when a value can exist both on the stack and in a
register.
The simplest example is a basic block that reads the virtual register,
but doesn't change its value. Spilling around such a block requires a
reload, but no spill in the block.
The spiller already knows this, but the spill placer doesn't. That can
sometimes lead to suboptimal regions.
llvm-svn: 136731
|
| |
|
|
| |
llvm-svn: 136727
|
| |
|
|
|
|
| |
spam.
llvm-svn: 136723
|
| |
|
|
| |
llvm-svn: 136722
|
| |
|
|
|
|
|
|
|
| |
externally visable, create a local symbol to use in the CFE. If not, use the
function label itself.
Fixes PR10420.
llvm-svn: 136716
|
| |
|
|
|
|
| |
The testcase looks extremely fragile, so I'm adding an assertion which should catch any cases like this.
llvm-svn: 136711
|
| |
|
|
|
|
| |
well as the comments that explain them incorrectly.
llvm-svn: 136707
|
| |
|
|
| |
llvm-svn: 136705
|
| |
|
|
|
|
| |
Use a more descriptive name so the code is more self-documenting.
llvm-svn: 136704
|
| |
|
|
|
|
| |
This unbreaks some tests.
llvm-svn: 136692
|
| |
|
|
|
|
|
|
|
| |
shuffle (scalar_to_vector (load (ptr + 4))), undef, <0, 0, 0, 0>
To:
shuffle (vload ptr)), undef, <1, 1, 1, 1>
Fix PR10494
llvm-svn: 136691
|
| |
|
|
| |
llvm-svn: 136690
|
| |
|
|
|
|
| |
to compile a working hello world on FreeBSD/PPC32.
llvm-svn: 136689
|
| |
|
|
|
|
|
| |
The 'unwind' function is going away with the new EH rewrite. This is step 0 in
keeping front-ends from using it.
llvm-svn: 136683
|
| |
|
|
| |
llvm-svn: 136677
|
| |
|
|
|
|
| |
llvm-gcc buildbots on i386. Devang is looking into the root cause.
llvm-svn: 136674
|
| |
|
|
|
|
| |
Krasin!
llvm-svn: 136663
|
| |
|
|
| |
llvm-svn: 136656
|
| |
|
|
| |
llvm-svn: 136655
|
| |
|
|
|
|
|
| |
the legalizer. This commit together with the two previous ones fixes
PR10495.
llvm-svn: 136654
|
| |
|
|
| |
llvm-svn: 136653
|
| |
|
|
|
|
| |
using a stack store.
llvm-svn: 136652
|
| |
|
|
|
|
|
|
|
|
|
| |
TableGen deps introduced in r136023. This completes the fixing that
dgregor started in r136621. Sorry for missing these the first time
around.
This should fix some of the random race-condition failures people are
still seeing with CMake.
llvm-svn: 136643
|
| |
|
|
|
|
|
|
| |
avoid returning early for v8i32 types, which would only be valid for
vector with all zeros. Also split the handling of zeros and ones into separate
checking logic since they are handled differently. This fixes PR10547
llvm-svn: 136642
|
| |
|
|
| |
llvm-svn: 136639
|
| |
|
|
|
|
| |
one than one successor goes to the same block.
llvm-svn: 136638
|
| |
|
|
| |
llvm-svn: 136623
|
| |
|
|
|
|
| |
targets. This should fix the CMake build with MSVC.
llvm-svn: 136621
|
| |
|
|
| |
llvm-svn: 136612
|
| |
|
|
| |
llvm-svn: 136611
|
| |
|
|
| |
llvm-svn: 136610
|
| |
|
|
| |
llvm-svn: 136609
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
them properly. Specifically, the disassembler clearly attempts to
initialiaze all TargetInfo, MCTargeDesc, AsmParser, and Disassembler
sublibraries of registered targets. This makes the CMakeLists accurately
reflect this intent in the code.
This should fix the last of the link errors that I have gotten reports
of on OS X, but if anyone continues to see link errors, continue to
pester me and I'll look into it.
llvm-svn: 136603
|
| |
|
|
|
|
|
|
|
| |
This adds the 'resume' instruction class, IR parsing, and bitcode reading and
writing. The 'resume' instruction resumes propagation of an existing (in-flight)
exception whose unwinding was interrupted with a 'landingpad' instruction (to be
added later).
llvm-svn: 136589
|
| |
|
|
| |
llvm-svn: 136588
|
| |
|
|
| |
llvm-svn: 136587
|
| |
|
|
|
|
| |
it to RHS anyway.
llvm-svn: 136586
|
| |
|
|
| |
llvm-svn: 136585
|