| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 123917
|
| |
|
|
| |
llvm-svn: 123916
|
| |
|
|
|
|
| |
usese 100% CPU and times out, so it's annoying to run it.
llvm-svn: 123915
|
| |
|
|
| |
llvm-svn: 123914
|
| |
|
|
|
|
|
|
|
| |
involving rvalue references, to start scoping out what is and what
isn't implemented. In the process, tweak some standards citations,
type desugaring, and teach the tentative parser about && in
ptr-operator.
llvm-svn: 123913
|
| |
|
|
| |
llvm-svn: 123912
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
auto-simplier the transform most missed by early-cse is (zext X) != 0 -> X != 0.
This patch adds this transform and some related logic to InstructionSimplify
and removes some of the logic from instcombine (unfortunately not all because
there are several situations in which instcombine can improve things by making
new instructions, whereas instsimplify is not allowed to do this). At -O2 this
often results in more than 15% more simplifications by early-cse, and results in
hundreds of lines of bitcode being eliminated from the testsuite. I did see some
small negative effects in the testsuite, for example a few additional instructions
in three programs. One program, 483.xalancbmk, got an additional 35 instructions,
which seems to be due to a function getting an additional instruction and then
being inlined all over the place.
llvm-svn: 123911
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 123910
|
| |
|
|
| |
llvm-svn: 123909
|
| |
|
|
|
|
|
|
|
|
| |
to add/sub by doing the normal operation and then checking for overflow
afterwards. This generally relies on the DAG handling the later invalid
operations as well.
Fixes the 64-bit part of rdar://8622122 and rdar://8774702.
llvm-svn: 123908
|
| |
|
|
| |
llvm-svn: 123907
|
| |
|
|
| |
llvm-svn: 123906
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TargetInstrInfo:
Change produceSameValue() to take MachineRegisterInfo as an optional argument.
When in SSA form, targets can use it to make more aggressive equality analysis.
Machine LICM:
1. Eliminate isLoadFromConstantMemory, use MI.isInvariantLoad instead.
2. Fix a bug which prevent CSE of instructions which are not re-materializable.
3. Use improved form of produceSameValue.
ARM:
1. Teach ARM produceSameValue to look pass some PIC labels.
2. Look for operands from different loads of different constant pool entries
which have same values.
3. Re-implement PIC GA materialization using movw + movt. Combine the pair with
a "add pc" or "ldr [pc]" to form pseudo instructions. This makes it possible
to re-materialize the instruction, allow machine LICM to hoist the set of
instructions out of the loop and make it possible to CSE them. It's a bit
hacky, but it significantly improve code quality.
4. Some minor bug fixes as well.
With the fixes, using movw + movt to materialize GAs significantly outperform the
load from constantpool method. 186.crafty and 255.vortex improved > 20%, 254.gap
and 176.gcc ~10%.
llvm-svn: 123905
|
| |
|
|
|
|
| |
Part of the fix for PR8413.
llvm-svn: 123904
|
| |
|
|
|
|
|
|
|
|
|
| |
while the inferior is running) to be fast. The previous code would always
cause the sender to timeout, yet still return success due to the way we
were waiting for a value (incorrect value) to change. Now the ProcessGDBRemote
plug-in has a public and private "is running" predicate. This allows things
that need to send async packets to interrupt and wait for the private "is running"
state to be flipped to false, and then resume quickly with no timeout.
llvm-svn: 123903
|
| |
|
|
| |
llvm-svn: 123902
|
| |
|
|
| |
llvm-svn: 123901
|
| |
|
|
|
|
|
|
| |
is marked 'final' and 'override'.
Also, call CheckOverrideControl when instantiating member functions.
llvm-svn: 123900
|
| |
|
|
| |
llvm-svn: 123899
|
| |
|
|
| |
llvm-svn: 123898
|
| |
|
|
| |
llvm-svn: 123897
|
| |
|
|
| |
llvm-svn: 123896
|
| |
|
|
| |
llvm-svn: 123895
|
| |
|
|
| |
llvm-svn: 123894
|
| |
|
|
| |
llvm-svn: 123893
|
| |
|
|
|
|
|
|
| |
Added a check for already live regs before claiming HighRegPressure.
Fixed a few cases of checking the wrong number of successors.
Added some tracing until these heuristics are better understood.
llvm-svn: 123892
|
| |
|
|
|
|
| |
The live range may have been deleted earlier because of rematerialization.
llvm-svn: 123891
|
| |
|
|
|
|
| |
register coalescing.
llvm-svn: 123890
|
| |
|
|
|
|
|
|
|
|
| |
isn't
going to actually be used as the symbol file plug-in by looking only for suitable
N_OSO symbols and avoiding sorting function (N_FUN) and global/static (N_GSYM/N_STSYM)
symbols when there are no suitable N_OSO objects.
llvm-svn: 123889
|
| |
|
|
|
|
| |
virtual member functions.
llvm-svn: 123888
|
| |
|
|
| |
llvm-svn: 123887
|
| |
|
|
| |
llvm-svn: 123886
|
| |
|
|
|
|
| |
CXXRecordDecl).
llvm-svn: 123885
|
| |
|
|
|
|
| |
with useful instructions.
llvm-svn: 123884
|
| |
|
|
|
|
| |
class member.
llvm-svn: 123883
|
| |
|
|
| |
llvm-svn: 123882
|
| |
|
|
|
|
| |
changes that recently happened.
llvm-svn: 123881
|
| |
|
|
| |
llvm-svn: 123880
|
| |
|
|
| |
llvm-svn: 123879
|
| |
|
|
| |
llvm-svn: 123878
|
| |
|
|
| |
llvm-svn: 123877
|
| |
|
|
|
|
| |
suggested by Doug.
llvm-svn: 123876
|
| |
|
|
| |
llvm-svn: 123875
|
| |
|
|
| |
llvm-svn: 123873
|
| |
|
|
| |
llvm-svn: 123872
|
| |
|
|
|
|
|
| |
failed to find a case where an enum context would make a difference, but
found PR9007 on the way.
llvm-svn: 123871
|
| |
|
|
|
|
|
| |
Set the thread state to "bland" before calling functions so they don't
inherit the pending signals and die.
llvm-svn: 123869
|
| |
|
|
| |
llvm-svn: 123868
|
| |
|
|
|
|
|
| |
declaration that name lookup actually found, so that we can use it for
access checking later on. Fixes <rdar://problem/8876150>.
llvm-svn: 123867
|
| |
|
|
| |
llvm-svn: 123866
|