| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
systematically, CollapsePhi will always return null here. Note
that CollapsePhi did an extra check, isSafeReplacement, which
the SimplifyInstruction logic does not do. I think that check
was bogus - I guess we will soon find out! (It was originally
added in commit 41998 without a testcase).
llvm-svn: 119456
|
|
|
|
|
|
| |
This fixes some extreme compile times on unrolled sha512 code.
llvm-svn: 119455
|
|
|
|
|
|
| |
operands in a variadic instruction.
llvm-svn: 119446
|
|
|
|
|
|
|
| |
"getRegisterListOpValue" logic. If the registers are double or single precision,
the value returned is suitable for VLDM/VSTM.
llvm-svn: 119435
|
|
|
|
| |
llvm-svn: 119433
|
|
|
|
| |
llvm-svn: 119403
|
|
|
|
|
|
|
| |
a different pass, the complicated interaction between cmov expansion
and fast isel is no longer a concern.
llvm-svn: 119400
|
|
|
|
|
|
| |
Patch by Louis Zhuang!
llvm-svn: 119394
|
|
|
|
| |
llvm-svn: 119386
|
|
|
|
| |
llvm-svn: 119385
|
|
|
|
|
|
|
| |
Next: Add support for the !HasDotLocAndDotFile case to the MCAsmStreamer
and then switch codegen to use it.
llvm-svn: 119384
|
|
|
|
|
|
|
| |
easier to debug, and to avoid complications when the CFG changes
in the middle of the instruction selection process.
llvm-svn: 119382
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Always spill the full representative register at any point where any subregister
is live.
This fixes PR8620 which caused the old logic to get confused and not spill
anything at all.
The fundamental problem here is that the coalescer is too aggressive about
physical register coalescing. It sometimes makes it impossible to allocate
registers without these emergency spills.
llvm-svn: 119375
|
|
|
|
| |
llvm-svn: 119374
|
|
|
|
| |
llvm-svn: 119362
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The system API's will be shifted over to returning an error_code, and returning
other return values as out parameters to the function.
Code that needs to check error conditions will use the errc enum values which
are the same as the posix_errno defines (EBADF, E2BIG, etc...), and are
compatable with the error codes in WinError.h due to some magic in system_error.
An example would be:
if (error_code ec = KillEvil("Java")) { // error_code can be converted to bool.
handle_error(ec);
}
llvm-svn: 119360
|
|
|
|
| |
llvm-svn: 119354
|
|
|
|
|
|
| |
rather than calling hasConstantValue. No intended functionality change.
llvm-svn: 119352
|
|
|
|
|
|
|
|
|
|
|
| |
over a phi node by applying it to each operand may be wrong if the
operation and the phi node are mutually interdependent (the testcase
has a simple example of this). So only do this transform if it would
be correct to perform the operation in each predecessor of the block
containing the phi, i.e. if the other operands all dominate the phi.
This should fix the FFMPEG snow.c regression reported by İsmail Dönmez.
llvm-svn: 119347
|
|
|
|
| |
llvm-svn: 119328
|
|
|
|
| |
llvm-svn: 119325
|
|
|
|
|
|
| |
- Add encodings to the *LDMIA_RET instrs. Probably not needed...
llvm-svn: 119323
|
|
|
|
| |
llvm-svn: 119321
|
|
|
|
|
|
| |
(and likely) wrong about anyhow.
llvm-svn: 119320
|
|
|
|
|
|
|
|
|
|
| |
branches to be emitted as:
bne cr0, 2
instead of:
bne cr0, $+8
llvm-svn: 119317
|
|
|
|
|
|
|
|
|
| |
'db', 'ib', 'da') instead of having that mode as a separate field in the
instruction. It's more convenient for the asm parser and much more readable for
humans.
<rdar://problem/8654088>
llvm-svn: 119310
|
|
|
|
| |
llvm-svn: 119309
|
|
|
|
| |
llvm-svn: 119308
|
|
|
|
|
|
|
|
| |
these instructions to be encoded with getMachineOpValue.
This unbreaks ExecutionEngine/2003-01-04-ArgumentBug.ll
when running on a G5
llvm-svn: 119307
|
|
|
|
|
|
|
|
|
| |
Use amazing new function call technology instead of writing identical code in
multiple places.
This fixes PR8604.
llvm-svn: 119306
|
|
|
|
|
|
|
|
|
|
| |
The live range of a register defined by an early clobber starts at the use slot,
not the def slot.
Except when it is an early clobber tied to a use operand. Then it starts at the
def slot like a standard def.
llvm-svn: 119305
|
|
|
|
| |
llvm-svn: 119295
|
|
|
|
| |
llvm-svn: 119286
|
|
|
|
|
|
| |
to be broken for other reasons
llvm-svn: 119283
|
|
|
|
|
|
| |
This reverts r119183 which borke the buildbots.
llvm-svn: 119270
|
|
|
|
| |
llvm-svn: 119187
|
|
|
|
|
|
| |
iterator, not TII->OptimizeCompareInstr.
llvm-svn: 119186
|
|
|
|
| |
llvm-svn: 119185
|
|
|
|
|
|
|
| |
pass in the first place and was masked by earlier failures not warning
and aborting the block.
llvm-svn: 119184
|
|
|
|
|
|
|
| |
The live range of a register defined by an early clobber starts at the use slot,
not the def slot.
llvm-svn: 119183
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
live ranges for the spill register are also defined at the use slot instead of
the normal def slot.
This fixes PR8612 for the inline spiller. A use was being allocated to the same
register as a spilled early clobber def.
This problem exists in all the spillers. A fix for the standard spiller is
forthcoming.
llvm-svn: 119182
|
|
|
|
| |
llvm-svn: 119180
|
|
|
|
| |
llvm-svn: 119176
|
|
|
|
| |
llvm-svn: 119175
|
|
|
|
| |
llvm-svn: 119170
|
|
|
|
| |
llvm-svn: 119167
|
|
|
|
| |
llvm-svn: 119164
|
|
|
|
|
|
| |
values that are equal to the phi itself.
llvm-svn: 119161
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
variable if recursing fails to simplify it.
Factor AliasedSymbol to be a method of MCSymbol.
Update MCAssembler::EvaluateFixup to match the change in
EvaluateAsRelocatableImpl.
Remove the WeakRefExpr hack, as the object writer now sees the weakref with
no extra effort needed.
Nothing else is using MCTargetExpr, but keep it for now.
Now that the ELF writer sees relocations with aliases, handle
.weak foo2
foo2:
.weak bar2
.set bar2,foo2
.quad bar2
the same way gas does and produce a relocation with bar2.
llvm-svn: 119152
|
|
|
|
|
|
|
| |
Added 2 new subclasses - X86ELFObjectWriter and ARMELFObectWriter.
ARM and X86 require different code for RecordRelocation(), possibly others.
llvm-svn: 119149
|