| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
are invalid). Fixes a crash on array1.C from the GCC testsuite when
compiled with dragonegg.
llvm-svn: 147946
|
| |
|
|
|
|
|
|
| |
of several newly un-defaulted switches. This also helps optimizers
(including LLVM's) recognize that every case is covered, and we should
assume as much.
llvm-svn: 147861
|
| |
|
|
| |
llvm-svn: 147855
|
| |
|
|
| |
llvm-svn: 147501
|
| |
|
|
| |
llvm-svn: 147446
|
| |
|
|
|
|
|
|
|
|
|
| |
See PR11652. Trying to add this assert to
setSubclassData() itself actually prevented
the miscompile entirely, so it has to be here.
This makes the source of the bug more obvious
than the other asserts triggering later on did.
llvm-svn: 147390
|
| |
|
|
|
|
|
|
| |
there is non of that type to remove. This fixes a crasher in the particular
case where the instruction has metadata but no metadata storage in the context
(this is only possible if the instruction has !dbg but no other metadata info).
llvm-svn: 147285
|
| |
|
|
|
|
| |
Fixes PR11640.
llvm-svn: 147144
|
| |
|
|
|
|
| |
Patch by Andrew Wilkins!
llvm-svn: 146984
|
| |
|
|
|
|
| |
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146960
|
| |
|
|
| |
llvm-svn: 146927
|
| |
|
|
|
|
|
|
| |
"half precision" floating-point with a first-class type.
This patch adds basic IR support (but not codegen support).
llvm-svn: 146786
|
| |
|
|
| |
llvm-svn: 146639
|
| |
|
|
|
|
|
|
|
| |
into Analysis as a standalone function, since there's no need for
it to be in VMCore. Also, update it to use isKnownNonZero and
other goodies available in Analysis, making it more precise,
enabling more aggressive optimization.
llvm-svn: 146610
|
| |
|
|
| |
llvm-svn: 146440
|
| |
|
|
| |
llvm-svn: 146409
|
| |
|
|
|
|
|
| |
a function to upgrade. Also, simplify the code a bit at the expense of
one line.
llvm-svn: 146368
|
| |
|
|
|
|
| |
argument of the cttz and ctlz intrinsics.
llvm-svn: 146360
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
indicates whether the intrinsic has a defined result for a first
argument equal to zero. This will eventually allow these intrinsics to
accurately model the semantics of GCC's __builtin_ctz and __builtin_clz
and the X86 instructions (prior to AVX) which implement them.
This patch merely sets the stage by extending the signature of these
intrinsics and establishing auto-upgrade logic so that the old spelling
still works both in IR and in bitcode. The upgrade logic preserves the
existing (inefficient) semantics. This patch should not change any
behavior. CodeGen isn't updated because it can use the existing
semantics regardless of the flag's value.
Note that this will be followed by API updates to Clang and DragonEgg.
Reviewed by Nick Lewycky!
llvm-svn: 146357
|
| |
|
|
| |
llvm-svn: 146293
|
| |
|
|
| |
llvm-svn: 145934
|
| |
|
|
|
|
|
|
|
|
| |
basic blocks.
- Calling getUser in a loop is much more expensive than iterating over a few instructions.
- Use it instead of the open-coded loop in AddrModeMatcher.
- 5% speedup on ARMDisassembler.cpp Release builds.
llvm-svn: 145810
|
| |
|
|
| |
llvm-svn: 145801
|
| |
|
|
| |
llvm-svn: 145578
|
| |
|
|
| |
llvm-svn: 145420
|
| |
|
|
|
|
| |
that mainline needs no autoupgrade logic for intrinsics yet, woohoo!
llvm-svn: 145178
|
| |
|
|
|
|
| |
autoupgrade logic for 2.9 and before.
llvm-svn: 145176
|
| |
|
|
|
|
|
| |
trampoline forms. Both of these were correct in LLVM 3.0, and we don't
need to support LLVM 2.9 and earlier in mainline.
llvm-svn: 145174
|
| |
|
|
|
|
|
| |
I think this is the last of autoupgrade that can be removed in 3.1.
Can the atomic upgrade stuff also go?
llvm-svn: 145169
|
| |
|
|
| |
llvm-svn: 145167
|
| |
|
|
|
|
| |
LLVM 3.0 and later.
llvm-svn: 145165
|
| |
|
|
|
|
|
|
| |
a lot.
While at it pull the trivial ctor in line.
llvm-svn: 145124
|
| |
|
|
| |
llvm-svn: 145025
|
| |
|
|
| |
llvm-svn: 144747
|
| |
|
|
|
|
| |
additional value over getName().
llvm-svn: 144657
|
| |
|
|
| |
llvm-svn: 144648
|
| |
|
|
|
|
| |
simplify it.
llvm-svn: 144555
|
| |
|
|
| |
llvm-svn: 143634
|
| |
|
|
| |
llvm-svn: 143549
|
| |
|
|
| |
llvm-svn: 143135
|
| |
|
|
|
|
|
| |
fix up later. For this special case, allow such a mask to be considered valid.
<rdar://problem/8622574>
llvm-svn: 142992
|
| |
|
|
|
|
| |
definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead. This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress. (GlobalDCE can also handle the given tescase, but we only run that at -O3.) Found while looking at PR11180.
llvm-svn: 142572
|
| |
|
|
| |
llvm-svn: 142259
|
| |
|
|
|
|
|
| |
Some code want to check that *any* call within a function has the 'returns
twice' attribute, not just that the current function has one.
llvm-svn: 142221
|
| |
|
|
|
|
|
| |
obsolete. Check the attribute instead.
<rdar://problem/8031714>
llvm-svn: 142212
|
| |
|
|
|
|
|
|
|
|
|
|
| |
profile metadata at the same time. Use it to preserve metadata attached
to a branch when re-writing it in InstCombine.
Add metadata to the canonicalize_branch InstCombine test, and check that
it is tranformed correctly.
Reviewed by Nick Lewycky!
llvm-svn: 142168
|
| |
|
|
|
|
| |
While at it, merge some format strings.
llvm-svn: 142140
|
| |
|
|
|
|
|
|
| |
note/warning/error as a
string, pass it around as an enum.
llvm-svn: 142107
|
| |
|
|
| |
llvm-svn: 142013
|
| |
|
|
| |
llvm-svn: 141990
|