| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Also, change MDString to use a StringRef.
llvm-svn: 77098
|
| |
|
|
|
|
| |
an enum.
llvm-svn: 77096
|
| |
|
|
|
|
| |
values. Hopefully this fixes PR4622.
llvm-svn: 77088
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
"trip count".
llvm-svn: 77081
|
| |
|
|
| |
llvm-svn: 77080
|
| |
|
|
| |
llvm-svn: 77079
|
| |
|
|
|
|
|
| |
the step value as unsigned, the start value and the addrec
itself still need to be treated as signed.
llvm-svn: 77078
|
| |
|
|
| |
llvm-svn: 77077
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
on darwin with ".cstring" instead of ".section __TEXT,__cstring". They
are the same and the former is better. Remove this because this is no longer
magic pixie dust in the frontend.
llvm-svn: 77055
|
| |
|
|
| |
llvm-svn: 77054
|
| |
|
|
| |
llvm-svn: 77053
|
| |
|
|
|
|
| |
- Less boilerplate == good.
llvm-svn: 77052
|
| |
|
|
| |
llvm-svn: 77051
|
| |
|
|
| |
llvm-svn: 77050
|
| |
|
|
|
|
|
| |
- 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: 77043
|
| |
|
|
| |
llvm-svn: 77042
|
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 77031
|
| |
|
|
|
|
| |
getAnalysisIfAvailable<TargetData>().
llvm-svn: 77028
|
| |
|
|
| |
llvm-svn: 77027
|
| |
|
|
| |
llvm-svn: 77026
|
| |
|
|
|
|
|
| |
test for it. The test is by no means complete, but it tests the problem I was
fixing.
llvm-svn: 77025
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
Necessary for cases in which the memory is in another process, in a
file, or on a remote machine.
The primary use for this is the llvm-mc disassemblers, so that they
can be targeted at arbitrary objects, not just in-process memory.
llvm-svn: 77023
|
| |
|
|
| |
llvm-svn: 77020
|
| |
|
|
|
|
|
|
|
|
| |
- 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: 77017
|
| |
|
|
| |
llvm-svn: 77016
|
| |
|
|
| |
llvm-svn: 77015
|
| |
|
|
| |
llvm-svn: 77014
|
| |
|
|
|
|
| |
thanks to contexts-on-types. More to come.
llvm-svn: 77011
|
| |
|
|
|
|
| |
- Chris, please approve.
llvm-svn: 77010
|
| |
|
|
| |
llvm-svn: 77009
|
| |
|
|
| |
llvm-svn: 77007
|
| |
|
|
| |
llvm-svn: 77006
|