| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
As discussed on D32391, test X86/X64 SSE2 and X64 F16C.
llvm-svn: 301744
|
| |
|
|
|
|
| |
APInt and then possibly copying over it.
llvm-svn: 301741
|
| |
|
|
|
|
|
|
| |
ConstantRange constructor.
The ConstantRange constructor takes APInt by value so without these moves we are making copies.
llvm-svn: 301740
|
| |
|
|
| |
llvm-svn: 301738
|
| |
|
|
| |
llvm-svn: 301737
|
| |
|
|
|
|
|
|
|
|
| |
We were default constructing the Lower/Upper APInts. Then creating min or max value, then doing a move assignment to Lower and copy assignment to upper. The copy assignment operator in particular has an out of line function call that has to examine whether or not a previous allocation exists that can be reused which of course it can't in this case.
The new code creates the min/max value first, move constructs Lower from it then copy constructs Upper from Lower.
This also seems to have convinced a self host build that this constructor can be inlined more readily into other methods in ConstantRange.
llvm-svn: 301736
|
| |
|
|
|
|
|
|
|
| |
This would assert when there were multiple defs of
a physical register.
We just need to move all of the users of it.
llvm-svn: 301730
|
| |
|
|
|
|
|
|
|
| |
There is a lot of duplicate code for printing line info between
YAML and the raw output printer. This introduces a base class
that can be shared between the two, and makes some minor
cleanups in the process.
llvm-svn: 301728
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
retainAutoreleasedReturnValue that retains the returned value.
This commit fixes a bug in ARC optimizer where it moves a release
between a call and a retainAutoreleasedReturnValue, causing the returned
object to be released before the retainAutoreleasedReturnValue can
retain it.
This commit accomplishes that by doing a lookahead and checking whether
the call prevents the release from moving upwards. In the long term, we
should treat the region between the retainAutoreleasedReturnValue and
the call as a critical section and disallow moving anything there
(possibly using operand bundles).
rdar://problem/20449878
llvm-svn: 301724
|
| |
|
|
|
|
|
|
|
| |
I fixed my miscompile in r301722 and I hope I don't have to take
a look at this code again now that Chandler has a new LoopUnswitch
pass, but maybe this could be of use for somebody else in the
meanwhile.
llvm-svn: 301723
|
| |
|
|
|
|
|
|
| |
This fixes PR32818.
Differential Revision: https://reviews.llvm.org/D32664
llvm-svn: 301722
|
| |
|
|
| |
llvm-svn: 301720
|
| |
|
|
|
|
|
|
|
| |
This has been mysteriously failing since r301593, which cleaned up the
types of things like size_t and SIZE_MAX for freestanding targets. Reid
and Kostya suggested marking it as UNSUPPORTED on windows, given that no
one has been able to reproduce locally.
llvm-svn: 301719
|
| |
|
|
|
|
|
|
| |
The llvm-readobj parsing code currently exists in our CodeView
library, so we use that to parse instead of re-writing the logic
in the tool.
llvm-svn: 301718
|
| |
|
|
| |
llvm-svn: 301716
|
| |
|
|
| |
llvm-svn: 301714
|
| |
|
|
| |
llvm-svn: 301713
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AttributeList"
This broke the Clang build. (Clang-side patch missing?)
Original commit message:
> [IR] Make add/remove Attributes use AttrBuilder instead of
> AttributeList
>
> This change cleans up call sites and avoids creating temporary
> AttributeList objects.
>
> NFC
llvm-svn: 301712
|
| |
|
|
|
|
|
| |
These are pretty common when using local memory, and the 64-bit generic
addressing is much more expensive to compute.
llvm-svn: 301711
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes the issue highlighted in
http://lists.llvm.org/pipermail/cfe-dev/2014-June/037500.html.
The DW_AT_decl_file and DW_AT_decl_line attributes on namespaces can
prevent LLVM from uniquing types that are in the same namespace. They
also don't carry any meaningful information.
rdar://problem/17484998
Differential Revision: https://reviews.llvm.org/D32648
llvm-svn: 301706
|
| |
|
|
|
|
|
|
|
|
|
| |
While looking at pure addressing expressions, it's possible
for the value to appear later in Postorder.
I haven't been able to come up with a testcase where this
exhibits an actual issue, but if you insert a dump before
the value map lookup, a few testcases crash.
llvm-svn: 301705
|
| |
|
|
|
|
|
|
| |
Eliminates some more cases where some subset of the addressing
computation remains flat. Some cases with addrspacecasts
in nested constant expressions are still left behind however.
llvm-svn: 301704
|
| |
|
|
| |
llvm-svn: 301703
|
| |
|
|
| |
llvm-svn: 301702
|
| |
|
|
| |
llvm-svn: 301700
|
| |
|
|
|
|
|
|
|
| |
When a PHI operand has a subregister, create a COPY instead of simply
replacing the PHI output with the input it.
Differential Revision: https://reviews.llvm.org/D32650
llvm-svn: 301699
|
| |
|
|
| |
llvm-svn: 301698
|
| |
|
|
|
|
|
|
|
| |
This change cleans up call sites and avoids creating temporary
AttributeList objects.
NFC
llvm-svn: 301697
|
| |
|
|
|
|
| |
it would make more sense to thing of 0 as 0 rather than the minimum unsigned value. NFC
llvm-svn: 301696
|
| |
|
|
|
|
|
|
|
|
| |
in a couple internal methods where it makes more sense than isMinValue or !getBoolValue. NFC
I used Null rather than Zero to match the getNullValue method name.
There are some other places outside APInt where isNullValue would be more readable than isMinValue even though they do the same thing. I'll update those in future patches.
llvm-svn: 301695
|
| |
|
|
| |
llvm-svn: 301694
|
| |
|
|
|
|
|
|
|
| |
While debugging a miscompile I realized loopunswitch doesn't
put newlines when printing the instruction being replacement.
Ending up with a single line with many instruction replaced isn't
the best for readability and/or mental sanity.
llvm-svn: 301692
|
| |
|
|
|
|
|
|
|
|
|
| |
Also, add test for data relocations and fix addend to
be signed.
Subscribers: jfb, dschuff
Differential Revision: https://reviews.llvm.org/D32513
llvm-svn: 301690
|
| |
|
|
|
|
|
|
| |
attribute
Patch by Tom Stellard
llvm-svn: 301688
|
| |
|
|
|
|
|
|
| |
Subscribers: jfb, dschuff
Differential Revision: https://reviews.llvm.org/D32660
llvm-svn: 301687
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The IntrNoMem, IntrReadMem, IntrWriteMem, and IntrArgMemOnly intrinsic
properties differ from their corresponding LLVM IR attributes by specifying
that the intrinsic, in addition to its memory properties, has no other side
effects.
The IntrHasSideEffects flag used in combination with one of the memory flags
listed above, makes it possible to define an intrinsic such that its
properties at the CodeGen layer match its properties at the IR layer.
Patch by Tom Stellard
llvm-svn: 301685
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The method is called "get *Param* Alignment", and is only used for
return values exactly once, so it should take argument indices, not
attribute indices.
Avoids confusing code like:
IsSwiftError = CS->paramHasAttr(ArgIdx, Attribute::SwiftError);
Alignment = CS->getParamAlignment(ArgIdx + 1);
Add getRetAlignment to handle the one case in Value.cpp that wants the
return value alignment.
This is a potentially breaking change for out-of-tree backends that do
their own call lowering.
llvm-svn: 301682
|
| |
|
|
| |
llvm-svn: 301681
|
| |
|
|
|
|
|
|
| |
This attribute tells the optimizer that the function may be speculated.
Patch by Tom Stellard
llvm-svn: 301680
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a new method finalizeLowering to TargetLoweringBase. This is in
preparation for an upcoming commit.
This function is meant for target specific adjustments to
MachineFrameInfo or register reservations.
Move the freezeRegisters() and the hasCopyImplyingStackAdjustment()
handling into the new function to prove the concept. As an added bonus
GlobalISel no longer missed the hasCopyImplyingStackAdjustment()
handling with this.
Differential Revision: https://reviews.llvm.org/D32621
llvm-svn: 301679
|
| |
|
|
|
|
|
|
|
|
| |
v2: More tests, bug fixes, cosmetic changes.
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, llvm-commits, t-tye
Differential Revision: https://reviews.llvm.org/D31762
llvm-svn: 301677
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When using ThinLTO, the linker performs its own parallelism. This
change limits the number of parallel link jobs that Ninja will issue
to keep the total number of threads reasonable when linking with
ThinLTO.
Reviewers: hans, ruiu
Subscribers: mgorny, mehdi_amini, Prazek
Differential Revision: https://reviews.llvm.org/D31990
llvm-svn: 301676
|
| |
|
|
| |
llvm-svn: 301673
|
| |
|
|
| |
llvm-svn: 301672
|
| |
|
|
|
|
|
| |
Avoids use of AttributeList::getNumSlots, making it easier to change the
underlying implementation.
llvm-svn: 301671
|
| |
|
|
|
|
|
|
|
|
|
| |
This eliminates many extra 'Idx' induction variables in loops over
arguments in CodeGen/ and Target/. It also reduces the number of places
where we assume that ReturnIndex is 0 and that we should add one to
argument numbers to get the corresponding attribute list index.
NFC
llvm-svn: 301666
|
| |
|
|
| |
llvm-svn: 301665
|
| |
|
|
|
|
| |
It doesn't make sense to remove an AttributeList from an argument.
llvm-svn: 301663
|
| |
|
|
| |
llvm-svn: 301662
|
| |
|
|
|
|
|
|
| |
This became no longer necessary after D19462 landed, and will be incompatible
with an upcoming change to the summary data structures that changes how we
represent references.
llvm-svn: 301660
|