| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 157007
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce the basic strategy for register pressure scheduling.
1) Respect target limits at all times.
2) Indentify critical register classes (pressure sets).
Track pressure within the scheduled region.
Avoid increasing scheduled pressure for critical registers.
3) Avoid exceeding the max pressure of the region prior to scheduling.
Added logic for picking between the top and bottom ready Q's based on
regpressure heuristics.
Status: functional but needs to be asjusted to achieve good results.
llvm-svn: 157006
|
| |
|
|
| |
llvm-svn: 157005
|
| |
|
|
| |
llvm-svn: 157004
|
| |
|
|
| |
llvm-svn: 157003
|
| |
|
|
| |
llvm-svn: 157002
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RegisterCoalescer set <undef> flags on all operands of copy instructions
that are scheduled to be removed. This is so they won't affect
shrinkToUses() by introducing false register reads.
Make sure those <undef> flags are never cleared, or shrinkToUses() could
cause live intervals to end at instructions about to be deleted.
This would be a lot simpler if RegisterCoalescer could just erase joined
copies immediately instead of keeping all the to-be-deleted instructions
around.
This fixes PR12862. Unfortunately, bugpoint can't create a sane test
case for this. Like many other coalescer problems, this failure depends
of a very fragile series of events.
<rdar://problem/11474428>
llvm-svn: 157001
|
| |
|
|
|
|
| |
Make sure useless (def-only) intervals also get verified.
llvm-svn: 157000
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
message" ARC
migration error.
This is more trouble that it is worth; autoreleasing a value without holding on it
is a valid use-case, we should not "punish" correct code for the minority of
broken/fragile programs that depend on the behavior of -autorelease.
rdar://9914061
llvm-svn: 156999
|
| |
|
|
|
|
| |
bugpoint-ing, it may turn into something else.
llvm-svn: 156998
|
| |
|
|
| |
llvm-svn: 156996
|
| |
|
|
|
|
|
|
|
| |
into a
separate side table, using the handy SequenceToOffsetTable class. This encodes all
these weird things into another 256 bytes, allowing all intrinsics to be encoded this way.
llvm-svn: 156995
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on it.
TestBackticksWithoutATarget.BackticksWithNoTargetTestCase was calling
GetDummyTarget() when executing for x86_64. When performing session
tearDown, it would get destroyed (and everything would be invalid (arch,
etc).
Then the test would run for i386. The dummy target wasn't being
reinitialized and was invalid. lldb complained that 'current process state
is unsuitable for expression parsing'.
llvm-svn: 156994
|
| |
|
|
| |
llvm-svn: 156993
|
| |
|
|
|
|
|
|
| |
tsan runtime shutdown is problematic for 2 reasons:
1. others crash during shutdown
2. we have to override user exit status (don't know it and can't return from atexit handler)
llvm-svn: 156991
|
| |
|
|
|
|
| |
http://codereview.appspot.com/6214052
llvm-svn: 156990
|
| |
|
|
|
|
| |
Patch by Meador Inge.
llvm-svn: 156989
|
| |
|
|
| |
llvm-svn: 156988
|
| |
|
|
| |
llvm-svn: 156987
|
| |
|
|
| |
llvm-svn: 156986
|
| |
|
|
|
|
| |
representation of Low and High from signed to unsigned. Since unsigned ints usually simpler, faster and allows to reduce some extra signed bit checks needed before <,>,<=,>= comparisons.
llvm-svn: 156985
|
| |
|
|
| |
llvm-svn: 156984
|
| |
|
|
| |
llvm-svn: 156983
|
| |
|
|
| |
llvm-svn: 156982
|
| |
|
|
| |
llvm-svn: 156981
|
| |
|
|
|
|
| |
for future expansion, no functionality change yet though.
llvm-svn: 156979
|
| |
|
|
|
|
|
| |
are only rejected because they can't be encoded into a 32-bit unit, not because
they contain an unencodable feature.
llvm-svn: 156978
|
| |
|
|
|
|
|
|
| |
other
intrinsics that use passed-in arguments.
llvm-svn: 156977
|
| |
|
|
|
|
| |
compatibility with LLVM 2.x bitcode files.
llvm-svn: 156976
|
| |
|
|
| |
llvm-svn: 156975
|
| |
|
|
|
|
| |
frames when it isn't the zero'th frame.
llvm-svn: 156974
|
| |
|
|
| |
llvm-svn: 156973
|
| |
|
|
| |
llvm-svn: 156971
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
about argument type mismatch.
This gives a nicer diagnostic in cases like
printf(fmt,
i);
where previously the snippet just pointed at 'fmt' (with a note at the
definition of fmt).
It's a wash for cases like
printf("%f",
i);
where previously we snippeted the offending portion of the format string,
but didn't indicate which argument was at fault.
llvm-svn: 156968
|
| |
|
|
|
|
|
|
|
|
|
| |
location
of the DeclStmt node, otherwise libclang will not work for anything inside that
class.
rdar://10837710
llvm-svn: 156966
|
| |
|
|
|
|
|
|
|
|
|
|
| |
used by the preprocessor. Apple's GCC also supported a -A option for linking.
The ld man page has the following:
-A basefile - Obsolete incremental load format. This option is obsolete.
Nick Kledzik confirms this option is no longer needed/supported.
rdar://11455614
llvm-svn: 156965
|
| |
|
|
|
|
|
|
| |
Disambiguate past such a potential problem, and use the absence of 'typename'
to break ties in favor of a parenthesized thingy being an initializer, if
nothing else in the declaration disambiguates it as declaring a function.
llvm-svn: 156963
|
| |
|
|
|
|
| |
Added a testcase.
llvm-svn: 156961
|
| |
|
|
|
|
|
|
|
|
|
| |
TableGen already computes register units as the basic unit of
interference. We can use that to compute the set of overlapping
registers.
This means that we can easily compute overlap sets for one register at a
time. There is no benefit to computing all registers at once.
llvm-svn: 156960
|
| |
|
|
| |
llvm-svn: 156959
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
llc to recognize MIPS16 as a MIPS ASE extension. -mips16 will mean the
mips16 ASE for mips32 by default.
As part of fixing of adding this we discovered some small changes that
need to be made to MipsInstrInfo::storeRegToStackSLot and
MipsInstrInfo::loadRegFromStackSlot. We were using some "==" equality tests
where in fact we should have been using Mips::<regclas>.hasSubClassEQ instead,
per suggestion of Jakob Stoklund Olesen.
Patch by Reed Kotler.
llvm-svn: 156958
|
| |
|
|
|
| |
FIXME: JSON doesn't like path separator '\', on Win32 hosts.
llvm-svn: 156957
|
| |
|
|
|
|
| |
Make sure we can fail to create a compile unit without asserting. We now emit a warning.
llvm-svn: 156956
|
| |
|
|
| |
llvm-svn: 156955
|
| |
|
|
|
|
| |
Since r156650, clang has stopped emitting byval arguments for MIPS targets.
llvm-svn: 156954
|
| |
|
|
| |
llvm-svn: 156953
|
| |
|
|
| |
llvm-svn: 156952
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When widening an existing <def,reads-undef> operand to a super-register,
it may be necessary to clear the <undef> flag because the wider register
is now read-modify-write through the instruction.
Conversely, it may be necessary to add an <undef> flag when the
coalescer turns a full-register def into a sub-register def, but the
larger register wasn't live before the instruction.
This happens in test/CodeGen/ARM/coalesce-subregs.ll, but the test
is too small for the <undef> flags to affect the generated code.
llvm-svn: 156951
|
| |
|
|
| |
llvm-svn: 156950
|
| |
|
|
| |
llvm-svn: 156949
|