| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
std::for_each. Turns out std::for_each doesn't update the variable passed in for the functor but instead copy constructs a new one.
llvm-svn: 155041
|
| |
|
|
|
|
| |
Same color scheme as clang uses. The colors are only enabled if the output is a tty.
llvm-svn: 155035
|
| |
|
|
|
|
| |
isRematerializable.
llvm-svn: 155031
|
| |
|
|
| |
llvm-svn: 155030
|
| |
|
|
| |
llvm-svn: 155016
|
| |
|
|
| |
llvm-svn: 155012
|
| |
|
|
| |
llvm-svn: 155004
|
| |
|
|
|
|
| |
instructions on ARM. Now the diasassembler emmits warnings instead of errors.
llvm-svn: 155002
|
| |
|
|
|
|
| |
disassembler. Since the upredicability conditions are complex, C++ code was added to handle them.
llvm-svn: 155001
|
| |
|
|
|
|
| |
coprocessor number was removed for this instruction.
llvm-svn: 155000
|
| |
|
|
|
|
| |
instructions in the disassembler.
llvm-svn: 154999
|
| |
|
|
|
|
|
|
|
|
| |
a bad one ourselves.
DenseMap's hash function uses slightly more entropy and reduces hash collisions
significantly. I also experimented with Hashing.h, but it didn't gave a lot of
improvement while being much more expensive to compute.
llvm-svn: 154996
|
| |
|
|
|
|
|
|
|
|
|
| |
If the loop contains invoke instructions, whose unwind edge escapes the loop,
then don't try to unswitch the loop. Doing so may cause the unwind edge to be
split, which not only is non-trivial but doesn't preserve loop simplify
information.
Fixes PR12573
llvm-svn: 154987
|
| |
|
|
|
|
| |
builtins a while back.
llvm-svn: 154985
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This introduces a threshold of 200 IV Users, which is very
conservative but should be sufficient to avoid serious compile time
sink or stack overflow. The llvm test-suite with LTO never exceeds 190
users per loop.
The bug doesn't relate to a specific type of loop. Checking in an
arbitrary giant loop as a unit test would be silly.
Fixes rdar://11262507.
llvm-svn: 154983
|
| |
|
|
| |
llvm-svn: 154971
|
| |
|
|
| |
llvm-svn: 154962
|
| |
|
|
|
|
| |
also fix SimplifyLibCalls to use TLI rather than compile-time conditionals to enable optimizations on floor, ceil, round, rint, and nearbyint
llvm-svn: 154960
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
transformation:
(X op C1) ^ C2 --> (X op C1) & ~C2 iff (C1&C2) == C2
should be done.
This change has been tested:
Using a debug+asserts build:
on the specific test case that brought this bug to light
make check-all
lnt nt
using this clang to build a release version of clang
Using the release+asserts clang-with-clang build:
on the specific test case that brought this bug to light
make check-all
lnt nt
Checking in because Evan wants it checked in. Test case forthcoming after
scrubbing.
llvm-svn: 154955
|
| |
|
|
| |
llvm-svn: 154953
|
| |
|
|
| |
llvm-svn: 154948
|
| |
|
|
| |
llvm-svn: 154944
|
| |
|
|
| |
llvm-svn: 154936
|
| |
|
|
|
|
| |
Patch by Vladimir Medic.
llvm-svn: 154935
|
| |
|
|
| |
llvm-svn: 154930
|
| |
|
|
| |
llvm-svn: 154921
|
| |
|
|
| |
llvm-svn: 154915
|
| |
|
|
|
|
|
|
| |
has NUW but not NSW."
This isn't right either, reverting for now.
llvm-svn: 154910
|
| |
|
|
|
|
| |
immediate is set.
llvm-svn: 154907
|
| |
|
|
|
|
|
|
|
|
| |
for the life of me remember why I wrote it this way, but I can't see any good
reason for it now. This patch replaces the custom linked list with an ilist.
This change should preserve the existing numberings exactly, so no generated code
should change (if it does, file a bug!).
llvm-svn: 154904
|
| |
|
|
|
|
|
| |
instructions with writebacks. And add test a case for all opcodes handed by
DecodeVLD2DupInstruction() in ARMDisassembler.cpp .
llvm-svn: 154884
|
| |
|
|
| |
llvm-svn: 154879
|
| |
|
|
| |
llvm-svn: 154878
|
| |
|
|
|
|
| |
rdar://11252521
llvm-svn: 154875
|
| |
|
|
|
|
|
|
| |
during Post RA scheduling in X86,
until the X86 target is changed to properly set up
post RA liveness.
llvm-svn: 154874
|
| |
|
|
| |
llvm-svn: 154872
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the MCJIT execution engine.
The GDB JIT debugging integration support works by registering a loaded
object image with a pre-defined function that GDB will monitor if GDB
is attached. GDB integration support is implemented for ELF only at this
time. This integration requires GDB version 7.0 or newer.
Patch by Andy Kaylor!
llvm-svn: 154868
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
both fallthrough and a conditional branch target the same successor.
Gracefully delete the conditional branch and introduce any unconditional
branch needed to reach the actual successor. This fixes memory
corruption in 2009-06-15-RegScavengerAssert.ll and possibly other tests.
Also, while I'm here fix a latent bug I spotted by inspection. I never
applied the same fundamental fix to this fallthrough successor finding
logic that I did to the logic used when there are no conditional
branches. As a consequence it would have selected landing pads had they
be aligned in just the right way here. I don't have a test case as
I spotted this by inspection, and the previous time I found this
required have of TableGen's source code to produce it. =/ I hate backend
bugs. ;]
Thanks to Jim Grosbach for helping me reason through this and reviewing
the fix.
llvm-svn: 154867
|
| |
|
|
|
|
|
|
|
| |
A trailing comma means no argument at all (i.e., as if the comma were not
present), not an empty argument to the invokee.
rdar://11252521
llvm-svn: 154863
|
| |
|
|
|
|
| |
rdar://11252521
llvm-svn: 154862
|
| |
|
|
| |
llvm-svn: 154850
|
| |
|
|
|
|
| |
catch it.
llvm-svn: 154845
|
| |
|
|
| |
llvm-svn: 154841
|
| |
|
|
|
|
| |
rdar://11252521
llvm-svn: 154840
|
| |
|
|
| |
llvm-svn: 154838
|
| |
|
|
|
|
| |
rdar://11252521
llvm-svn: 154832
|
| |
|
|
| |
llvm-svn: 154829
|
| |
|
|
|
|
|
|
|
| |
through the use of 'fpmath' metadata. Currently this only provides a 'fpaccuracy'
value, which may be a number in ULPs or the keyword 'fast', however the intent is
that this will be extended with additional information about NaN's, infinities
etc later. No optimizations have been hooked up to this so far.
llvm-svn: 154822
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is mostly to test the waters. I'd like to get results from FNT
build bots and other bots running on non-x86 platforms.
This feature has been pretty heavily tested over the last few months by
me, and it fixes several of the execution time regressions caused by the
inlining work by preventing inlining decisions from radically impacting
block layout.
I've seen very large improvements in yacr2 and ackermann benchmarks,
along with the expected noise across all of the benchmark suite whenever
code layout changes. I've analyzed all of the regressions and fixed
them, or found them to be impossible to fix. See my email to llvmdev for
more details.
I'd like for this to be in 3.1 as it complements the inliner changes,
but if any failures are showing up or anyone has concerns, it is just
a flag flip and so can be easily turned off.
I'm switching it on tonight to try and get at least one run through
various folks' performance suites in case SPEC or something else has
serious issues with it. I'll watch bots and revert if anything shows up.
llvm-svn: 154816
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
rotation. When there is a loop backedge which is an unconditional
branch, we will end up with a branch somewhere no matter what. Try
placing this backedge in a fallthrough position above the loop header as
that will definitely remove at least one branch from the loop iteration,
where whole loop rotation may not.
I haven't seen any benchmarks where this is important but loop-blocks.ll
tests for it, and so this will be covered when I flip the default.
llvm-svn: 154812
|