| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
obscuring what would otherwise be a low-bits mask. Use ComputeMaskedBits
to compute what ShrinkDemandedConstant knew about to reconstruct a
low-bits mask value.
llvm-svn: 73540
|
| |
|
|
| |
llvm-svn: 73536
|
| |
|
|
|
|
|
| |
Dispatch C calling conv. to one of these conventions based on
target triple and subtarget features.
llvm-svn: 73530
|
| |
|
|
|
|
|
| |
(this is the case when we have thumb vararg function with single
callee-saved register, which is handled separately).
llvm-svn: 73529
|
| |
|
|
| |
llvm-svn: 73524
|
| |
|
|
| |
llvm-svn: 73523
|
| |
|
|
| |
llvm-svn: 73521
|
| |
|
|
|
|
|
|
| |
info. To handle this edge case, always create main compile unit first.
This fixes PR 4228.
llvm-svn: 73520
|
| |
|
|
| |
llvm-svn: 73519
|
| |
|
|
| |
llvm-svn: 73518
|
| |
|
|
| |
llvm-svn: 73516
|
| |
|
|
| |
llvm-svn: 73515
|
| |
|
|
| |
llvm-svn: 73514
|
| |
|
|
|
|
| |
calls for convenience.
llvm-svn: 73512
|
| |
|
|
|
|
|
| |
have target-specific builtins, and do not set the count.
Just default to 0 for these targets.
llvm-svn: 73510
|
| |
|
|
| |
llvm-svn: 73508
|
| |
|
|
|
|
|
| |
to ignore readonly calls, and factor it out of instcombine so
that it can be used by other passes. Patch by Frits van Bommel!
llvm-svn: 73506
|
| |
|
|
| |
llvm-svn: 73495
|
| |
|
|
| |
llvm-svn: 73494
|
| |
|
|
|
|
|
|
|
| |
registered when PCH wasn't being used. We should always install (in BuiltinInfo)
information about target-specific builtins, but we shouldn't register any builtin
identifier infos. This fixes the build of apps that use PCH and target specific
builtins together.
llvm-svn: 73492
|
| |
|
|
| |
llvm-svn: 73491
|
| |
|
|
|
|
|
| |
essentially working now, at least for common cases, and it shouldn't
silently generate bad code.
llvm-svn: 73484
|
| |
|
|
| |
llvm-svn: 73483
|
| |
|
|
|
|
| |
be unique.
llvm-svn: 73482
|
| |
|
|
| |
llvm-svn: 73481
|
| |
|
|
|
|
| |
operations).
llvm-svn: 73480
|
| |
|
|
| |
llvm-svn: 73479
|
| |
|
|
|
|
|
|
| |
copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead.
TurnCopyIntoImpDef turns a copy into implicit_def and remove the val# defined by it. This causes an scavenger assertion later if the def reaches other blocks. Disable the transformation if the value live interval extends beyond its def block.
llvm-svn: 73478
|
| |
|
|
|
|
|
|
| |
support for x86, and UMULO/SMULO for many architectures, including PPC
(PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's
not bad.
llvm-svn: 73477
|
| |
|
|
| |
llvm-svn: 73476
|
| |
|
|
| |
llvm-svn: 73474
|
| |
|
|
| |
llvm-svn: 73472
|
| |
|
|
| |
llvm-svn: 73471
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The problem was that BitcodeReader::materializeModule would read functions
from the bc file in densemap pointer key order (doubly non-deterministic!),
which would cause the use-def chains to be set up for globals in
non-determinstic order. Non-determinstic use/def chains can cause
nondeterminism in many places down-stream.
Many thanks to Julien Lerouge for putting together the pass in the PR that
shows the issue!
llvm-svn: 73470
|
| |
|
|
| |
llvm-svn: 73468
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
comes after the DW_CFA_def_cfa_register, because the CFA is really ESP from the
start of the function and only gets an offset when the "subl $xxx,%esp"
instruction happens, not the other way around.
And reapply r72898:
The DWARF unwind info was incorrect. While compiling with
`-fomit-frame-pointer', we would lack the DW_CFA_advance_loc information for a
lot of function, and then they would be `0'. The linker (at least on Darwin)
needs to encode the stack size. In some cases, the stack size is too large to
directly encode. So the linker checks to see if there is a "subl $xxx,%esp"
instruction at the point where the `DW_CFA_def_cfa_offset' says the pc was. If
so, the compact encoding records the offset in the function to where the stack
size is embedded. But because the `DW_CFA_advance_loc' instructions are missing,
it looks before the function and dies.
So, instead of emitting the EH debug label before the stack adjustment
operations, emit it afterwards, right before the frame move stuff.
llvm-svn: 73465
|
| |
|
|
| |
llvm-svn: 73464
|
| |
|
|
| |
llvm-svn: 73462
|
| |
|
|
| |
llvm-svn: 73457
|
| |
|
|
|
|
| |
Comments welcome!
llvm-svn: 73456
|
| |
|
|
|
|
| |
describe their behavior.
llvm-svn: 73454
|
| |
|
|
| |
llvm-svn: 73452
|
| |
|
|
| |
llvm-svn: 73451
|
| |
|
|
| |
llvm-svn: 73450
|
| |
|
|
| |
llvm-svn: 73449
|
| |
|
|
| |
llvm-svn: 73448
|
| |
|
|
| |
llvm-svn: 73446
|
| |
|
|
| |
llvm-svn: 73441
|
| |
|
|
|
|
|
|
| |
df_iterator.
Owen Anderson 2009-06-15: Remember to clear out our maps to prevent crashing.
llvm-svn: 73438
|
| |
|
|
| |
llvm-svn: 73437
|