| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
blow out the stack for really big functions. Start by fixing an easy case.
llvm-svn: 100126
|
| |
|
|
|
|
|
|
| |
zero.
- Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type.
llvm-svn: 100118
|
| |
|
|
| |
llvm-svn: 100117
|
| |
|
|
|
|
| |
Update comment, rename a local variable.
llvm-svn: 100116
|
| |
|
|
| |
llvm-svn: 100107
|
| |
|
|
|
|
|
|
|
|
| |
- Use a RAII object to close the FD.
- Use sys::StrError instead of thread-unsafe strerror calls.
- Recover gracefully if read returns zero. This works around an issue on
DragonFlyBSD where /dev/null has an st_size of 136 but we can't read 136 bytes
from it.
llvm-svn: 100106
|
| |
|
|
|
|
|
|
|
| |
is necessary. Inherits from new templated baseclass CallSiteBase<>
which is highly customizable. Base CallSite on it too, in a configuration
that allows full mutation.
Adapt some call sites in analyses to employ ImmutableCallSite.
llvm-svn: 100100
|
| |
|
|
|
|
| |
patch back in r94322.
llvm-svn: 100097
|
| |
|
|
|
|
|
|
|
|
| |
of raw mdnodes. This allows frontends to specify debug
locations without ever creating an MDNode for the DILocation.
This requires a corresponding clang/llvm-gcc change which
I'll try to commit as simultaneously as possible.
llvm-svn: 100095
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
1. Makes it possible to lower with floating point loads and stores.
2. Avoid unaligned loads / stores unless it's fast.
3. Fix some memcpy lowering logic bug related to when to optimize a
load from constant string into a constant.
4. Adjust x86 memcpy lowering threshold to make it more sane.
5. Fix x86 target hook so it uses vector and floating point memory
ops more effectively.
rdar://7774704
llvm-svn: 100090
|
| |
|
|
| |
llvm-svn: 100089
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
being a TrackingVH<MDNode> to a NewDebugLoc, shrinking
sizeof(Instruction) a lot, and providing clients the ability
to deal with locations in terms of NewDebugLoc instead of
having to deal with Metadata. This is still fully compatible
with all clients that *do* use MDNodes for everything of
course.
No functionality change.
llvm-svn: 100088
|
| |
|
|
| |
llvm-svn: 100087
|
| |
|
|
|
|
|
|
| |
to used deferred resolution instead of creating a temporary
node + rauw. There is no reason to create the temporary
mdnode, then do rauw, then destroy it.
llvm-svn: 100086
|
| |
|
|
|
|
|
| |
entry in the Scope+InlinedAt drops to a non-canonical form,
we need to reset the idx member of both VH's to 0.
llvm-svn: 100084
|
| |
|
|
| |
llvm-svn: 100083
|
| |
|
|
| |
llvm-svn: 100082
|
| |
|
|
| |
llvm-svn: 100081
|
| |
|
|
|
|
|
| |
aes instead of sse4.2. Add a brief todo for a subtarget flag and rework
the aeskeygenassist instruction to more closely match the docs.
llvm-svn: 100078
|
| |
|
|
| |
llvm-svn: 100074
|
| |
|
|
|
|
|
|
|
|
|
|
| |
and will replace the 'DbgInfo' member in Instruction.
The benefit of NewDebugLoc is that it is compact (8 bytes vs 12/24
bytes for the DbgInfo member in Instruction on a 32/64 bit system),
it means that we will end up not having to allocate MDNodes to
represent the "DILocations" in common cases of -O0 -g, and it is
much more efficient to get things out of than the MDNode.
llvm-svn: 100072
|
| |
|
|
| |
llvm-svn: 100066
|
| |
|
|
| |
llvm-svn: 100065
|
| |
|
|
| |
llvm-svn: 100062
|
| |
|
|
| |
llvm-svn: 100058
|
| |
|
|
|
|
|
|
|
|
| |
* Set the "DestA" and "DestB" according to how they're understood by the
method. I.e., if one or both of them should point to the "fall through" block,
then point to the fall through block.
* Improve the loop that removes superfluous edges to be more understandable.
llvm-svn: 100056
|
| |
|
|
|
|
| |
functions. Partial fix for Radar 7424645.
llvm-svn: 100048
|
| |
|
|
|
|
|
|
| |
PHIs. The previous algorithm was unable to reliably detect when existing
PHIs in a cycle can be reused. I'm still working on reducing a testcase.
Radar 7711900.
llvm-svn: 100047
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generate wrong code pretty much anywhere AFAICT.
A case that hits the bug reproducibly is impossible,
but the situation was like this:
Addr = ...
Store -> Addr
Addr2 = GEP , 0, 0
Store -> Addr2
Handling the first store, the code changed replaced Addr
with a sunkaddr and deleted Addr, but not its table
entry. Code in OptimizedBlock replaced Addr2 with a
bitcast; if that happened to reuse the memory of Addr,
the old table entry was erroneously found when handling
the second store.
llvm-svn: 100044
|
| |
|
|
| |
llvm-svn: 100042
|
| |
|
|
| |
llvm-svn: 100038
|
| |
|
|
| |
llvm-svn: 100037
|
| |
|
|
|
|
|
|
|
| |
POD-like anyway, so we don't even care about calling their d'tors (DIEBlock
being the exception).
~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c
llvm-svn: 100035
|
| |
|
|
| |
llvm-svn: 100033
|
| |
|
|
| |
llvm-svn: 100031
|
| |
|
|
| |
llvm-svn: 100016
|
| |
|
|
| |
llvm-svn: 100011
|
| |
|
|
| |
llvm-svn: 100010
|
| |
|
|
|
|
| |
Patch from Gianluigi Tiesi!
llvm-svn: 100003
|
| |
|
|
| |
llvm-svn: 99999
|
| |
|
|
| |
llvm-svn: 99998
|
| |
|
|
|
|
| |
consistent with other similar ones.
llvm-svn: 99997
|
| |
|
|
| |
llvm-svn: 99995
|
| |
|
|
| |
llvm-svn: 99993
|
| |
|
|
| |
llvm-svn: 99992
|
| |
|
|
| |
llvm-svn: 99989
|
| |
|
|
| |
llvm-svn: 99986
|
| |
|
|
| |
llvm-svn: 99984
|
| |
|
|
|
|
|
|
|
| |
instructions. In addition to being a convenience,
they are faster than the old apis, particularly when
not going from an MDKindID like people should be
doing.
llvm-svn: 99982
|
| |
|
|
| |
llvm-svn: 99975
|