| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 93304
|
| |
|
|
|
|
|
|
|
| |
different BlockAddress labels, but nothing semantically important.
Add a FIXME that BlockAddress codegen is broken if the LLVM BB has
an empty name (e.g. strip was run).
llvm-svn: 93303
|
| |
|
|
|
|
|
|
|
| |
Among other things, this would do very weird things if the
basic block name had (e.g.) a space in it on darwin:
makeNameProper would add quotes, then the mcsymbol would
escape the quotes.
llvm-svn: 93302
|
| |
|
|
|
|
|
|
| |
and use them to avoid a copy of a string in getNameWithPrefix in
the common case. It seems like Value::setName and other places
should use this as well?
llvm-svn: 93301
|
| |
|
|
|
|
|
|
| |
that I want to completely eliminate. Add fixme's so I remember this
in the future, and add the missing helper that they should be upgraded
to use instead.
llvm-svn: 93300
|
| |
|
|
|
|
|
|
|
|
|
|
| |
instead of returning it in an std::string. Based on this change:
1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef
2. Change a bunch of targets to call makeNameProper with a smallstring,
making several of them *much* more efficient.
3. Rewrite Mangler::makeNameProper to not build names and then prepend
prefixes, not use temporary std::strings, and to avoid other crimes.
llvm-svn: 93298
|
| |
|
|
| |
llvm-svn: 93296
|
| |
|
|
| |
llvm-svn: 93295
|
| |
|
|
| |
llvm-svn: 93293
|
| |
|
|
| |
llvm-svn: 93292
|
| |
|
|
|
|
| |
integers on 64-bit systems.
llvm-svn: 93291
|
| |
|
|
| |
llvm-svn: 93290
|
| |
|
|
|
|
| |
in ValueEnumerator's ValueList during WriteConstants()
llvm-svn: 93289
|
| |
|
|
| |
llvm-svn: 93286
|
| |
|
|
| |
llvm-svn: 93285
|
| |
|
|
| |
llvm-svn: 93283
|
| |
|
|
|
|
|
|
| |
It was only being used by instructions with the t_addrmode_sp addressing mode,
and that is pattern matched in a way that guarantees SP is used. There is
never any register allocation done from this class.
llvm-svn: 93280
|
| |
|
|
|
|
|
|
| |
where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg.
For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used.
llvm-svn: 93278
|
| |
|
|
|
|
|
| |
dumper doesn't really do what I want yet, but
at least it doesn't crash now.
llvm-svn: 93272
|
| |
|
|
|
|
| |
ValueList
llvm-svn: 93270
|
| |
|
|
| |
llvm-svn: 93261
|
| |
|
|
|
|
|
|
|
|
|
|
| |
in JT.
2) When cloning blocks for PHI or xor conditions, use
instsimplify to simplify the code as we go. This allows us to
squish common cases early in JT which opens up opportunities for
subsequent iterations, and allows it to completely simplify the
testcase.
llvm-svn: 93253
|
| |
|
|
| |
llvm-svn: 93251
|
| |
|
|
| |
llvm-svn: 93249
|
| |
|
|
| |
llvm-svn: 93247
|
| |
|
|
|
|
| |
patterns first.
llvm-svn: 93245
|
| |
|
|
|
|
|
| |
on x86-64 linux with messages like this:
Error: Incorrect register `%r14' used with `l' suffix
llvm-svn: 93242
|
| |
|
|
| |
llvm-svn: 93235
|
| |
|
|
|
|
|
| |
to not touch Cygwin: the change caused llvm-gcc build failures due to
long double getting the wrong size. Patch by Aaron Gray.
llvm-svn: 93234
|
| |
|
|
| |
llvm-svn: 93229
|
| |
|
|
| |
llvm-svn: 93228
|
| |
|
|
| |
llvm-svn: 93227
|
| |
|
|
| |
llvm-svn: 93222
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
condition is a xor with a phi node. This eliminates nonsense
like this from 176.gcc in several places:
LBB166_84:
testl %eax, %eax
- setne %al
- xorb %cl, %al
- notb %al
- testb $1, %al
- je LBB166_85
+ je LBB166_69
+ jmp LBB166_85
This is rdar://7391699
llvm-svn: 93221
|
| |
|
|
|
|
|
|
|
| |
instruction is copy like where the source and destination registers can
overlap. This is to be used by the coalescable to coalesce the source and
destination registers of instructions like X86::MOVSX64rr32. Apparently
some crazy people believe the coalescer is too simple.
llvm-svn: 93210
|
| |
|
|
|
|
| |
on branches by renaming it and checking for a branch at the call site.
llvm-svn: 93208
|
| |
|
|
|
|
| |
autogen them after 93152 and 93191.
llvm-svn: 93204
|
| |
|
|
|
|
|
|
|
| |
uses,
codegen has no apparent problem with the trunc version of this, because it turns
into a simple subreg idiom
llvm-svn: 93202
|
| |
|
|
|
|
|
|
|
|
|
| |
the
trunc has multiple uses. Codegen is not able to coalesce the subreg case
correctly and so this leads to higher register pressure and spilling (see PR5997).
This speeds up 256.bzip2 from 8.60 -> 8.04s on my machine, ~7%.
llvm-svn: 93200
|
| |
|
|
|
|
| |
and ConvertValIDToValue into a more powerful ConvertValIDToValue() that does all three's work
llvm-svn: 93197
|
| |
|
|
|
|
| |
overlap, then select as an ADD instead.
llvm-svn: 93191
|
| |
|
|
| |
llvm-svn: 93185
|
| |
|
|
|
|
|
|
| |
BRCOND was constant folded.
This fixes PR5980.
llvm-svn: 93184
|
| |
|
|
| |
llvm-svn: 93183
|
| |
|
|
| |
llvm-svn: 93182
|
| |
|
|
|
|
|
|
| |
then a load if the
loads are not in the default address space because the transformation discards src value info.
llvm-svn: 93180
|
| |
|
|
| |
llvm-svn: 93174
|
| |
|
|
| |
llvm-svn: 93165
|
| |
|
|
|
|
| |
have a fix.
llvm-svn: 93163
|
| |
|
|
|
|
|
|
|
| |
- getToken is modeled after StringRef::split but it can split on multiple
separator chars and skips leading seperators.
- SplitString is a StringRef::split variant for more than 2 elements with the
same behaviour as getToken.
llvm-svn: 93161
|