| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Spell SectionFlags::Writeable as "Writable".
2. Add predicates for deriving SectionFlags from SectionKinds.
3. Sink ELF-specific getSectionPrefixForUniqueGlobal impl into
ELFTargetAsmInfo.
4. Fix SectionFlagsForGlobal to know that BSS/ThreadBSS has the
BSS bit set (the real fix for PR4619).
5. Fix isSuitableForBSS to not put globals with explicit sections
set in BSS (which was the reason #4 wasn't fixed earlier).
6. Remove my previous hack for PR4619.
llvm-svn: 77085
|
|
|
|
| |
llvm-svn: 77084
|
|
|
|
|
|
| |
Thanks to Rafael for the great example.
llvm-svn: 77083
|
|
|
|
| |
llvm-svn: 77080
|
|
|
|
|
|
|
| |
the step value as unsigned, the start value and the addrec
itself still need to be treated as signed.
llvm-svn: 77078
|
|
|
|
| |
llvm-svn: 77065
|
|
|
|
|
|
|
|
|
|
| |
- Instead of requiring targets to define a JIT quality match function, we just
have them specify if they support a JIT.
- Target selection for the JIT just gets the host triple and looks for the best
target which matches the triple and has a JIT.
llvm-svn: 77060
|
|
|
|
|
|
| |
delete in isSafeToDelete (a thing checked-in 76281).
llvm-svn: 77056
|
|
|
|
|
|
| |
- Less boilerplate == good.
llvm-svn: 77052
|
|
|
|
| |
llvm-svn: 77051
|
|
|
|
|
|
|
| |
- The only meat here is in Value.{h,cpp} the rest is essential 'const
std::string &' -> 'const Twine &'.
llvm-svn: 77048
|
|
|
|
| |
llvm-svn: 77045
|
|
|
|
| |
llvm-svn: 77044
|
|
|
|
| |
llvm-svn: 77041
|
|
|
|
| |
llvm-svn: 77039
|
|
|
|
| |
llvm-svn: 77035
|
|
|
|
|
|
| |
analyzing add recurrences.
llvm-svn: 77034
|
|
|
|
| |
llvm-svn: 77033
|
|
|
|
|
|
|
|
|
|
|
|
| |
affected after a PHI node has been analyzed, just remove affected
SCEVs from the Scalars map, so that they'll be (lazily) recreated as
needed. This avoids creating SCEV objects that aren't actually needed.
Also, rewrite the associated def-use walking code to be non-recursive
and to continue traversing past Instructions that don't have an
entry in the Scalars map.
llvm-svn: 77032
|
|
|
|
|
|
| |
getAnalysisIfAvailable<TargetData>().
llvm-svn: 77028
|
|
|
|
| |
llvm-svn: 77026
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
adr r12, #LJTI3_0_0
ldr pc, [r12, +r0, lsl #2]
LJTI3_0_0:
.long LBB3_24
.long LBB3_30
.long LBB3_31
.long LBB3_32
After:
adr r12, #LJTI3_0_0
add pc, r12, +r0, lsl #2
LJTI3_0_0:
b.w LBB3_24
b.w LBB3_30
b.w LBB3_31
b.w LBB3_32
This has several advantages.
1. This will make it easier to optimize this to a TBB / TBH instruction +
(smaller) table.
2. This eliminate the need for ugly asm printer hack to force the address
into thumb addresses (bit 0 is one).
3. Same codegen for pic and non-pic.
4. This eliminate the need to align the table so constantpool island pass
won't have to over-estimate the size.
Based on my calculation, the later is probably slightly faster as well since
ldr pc with shifter address is very slow. That is, it should be a win as long
as the HW implementation can do a reasonable job of branch predict the second
branch.
llvm-svn: 77024
|
|
|
|
|
|
|
|
|
|
| |
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
llvm-svn: 77019
|
|
|
|
| |
llvm-svn: 77018
|
|
|
|
| |
llvm-svn: 77016
|
|
|
|
| |
llvm-svn: 77015
|
|
|
|
| |
llvm-svn: 77014
|
|
|
|
|
|
| |
thanks to contexts-on-types. More to come.
llvm-svn: 77011
|
|
|
|
| |
llvm-svn: 77009
|
|
|
|
|
|
|
| |
There's still a strict-aliasing violation here, but I don't feel like
dealing with that right now...
llvm-svn: 77005
|
|
|
|
| |
llvm-svn: 77004
|
|
|
|
| |
llvm-svn: 76999
|
|
|
|
|
|
|
| |
previously virtual) function to being a static function
in the .cpp file.
llvm-svn: 76997
|
|
|
|
|
|
| |
effectively). It caused infinite looping on lencod.
llvm-svn: 76995
|
|
|
|
|
|
|
|
| |
It's classifications now include elf-specific discriminators. Targets
that don't have these features (like darwin and pecoff) simply treat
data.rel like data, etc.
llvm-svn: 76993
|
|
|
|
|
|
| |
bit in Thumb2 jumptable entries. We now pass Olden.
llvm-svn: 76991
|
|
|
|
|
|
| |
pass it in instead of recomputing it.
llvm-svn: 76990
|
|
|
|
|
|
| |
hack.
llvm-svn: 76989
|
|
|
|
| |
llvm-svn: 76988
|
|
|
|
| |
llvm-svn: 76987
|
|
|
|
| |
llvm-svn: 76986
|
|
|
|
| |
llvm-svn: 76984
|
|
|
|
| |
llvm-svn: 76983
|
|
|
|
|
|
| |
instead of getAnalysis<TargetData>().
llvm-svn: 76982
|
|
|
|
| |
llvm-svn: 76977
|
|
|
|
| |
llvm-svn: 76976
|
|
|
|
| |
llvm-svn: 76975
|
|
|
|
|
|
| |
into its own helper function.
llvm-svn: 76974
|
|
|
|
|
|
| |
virtual one.
llvm-svn: 76973
|
|
|
|
| |
llvm-svn: 76972
|