Commit Graph

14171 Commits

Author SHA1 Message Date
Hideto Ueno
703c80f8d1 [Attributor] Deduce "nofree" function attribute
Summary: Deduce "nofree" function attribute. A more concise description of "nofree" is on D49165.

Reviewers: jdoerfert

Reviewed By: jdoerfert

Subscribers: homerdin, hfinkel, lebedev.ri, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62687

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365924 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 17:38:51 +00:00
Philip Reames
d406311e80 [IndVars] Use exit count reasoning to discharge obviously untaken exits
Continue in the spirit of D63618, and use exit count reasoning to prove away loop exits which can not be taken since the backedge taken count of the loop as a whole is provably less than the minimal BE count required to take this particular loop exit.

As demonstrated in the newly added tests, this triggers in a number of cases where IndVars was previously unable to discharge obviously redundant exit tests. And some not so obvious ones.

Differential Revision: https://reviews.llvm.org/D63733



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365920 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 17:05:35 +00:00
Hideto Ueno
6f8da22665 [FunctionAttrs] Add a test for "nofree" function attribute
This patch adds a test for nofree function attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365916 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 16:29:14 +00:00
Hideto Ueno
51c907908b Test commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365912 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 16:08:32 +00:00
David Bolvansky
e35805b819 [InstCombine] Fold select (icmp sgt x, -1), lshr (X, Y), ashr (X, Y) to ashr (X, Y))
Summary:
(select (icmp sgt x, -1), lshr (X, Y), ashr (X, Y)) -> ashr (X, Y))
(select (icmp slt x, 1), ashr (X, Y), lshr (X, Y)) -> ashr (X, Y))

Fixes PR41173

Alive proof by @lebedev.ri (thanks)
Name: PR41173
  %cmp = icmp slt i32 %x, 1
  %shr = lshr i32 %x, %y
  %shr1 = ashr i32 %x, %y
  %retval.0 = select i1 %cmp, i32 %shr1, i32 %shr
  =>
  %retval.0 = ashr i32 %x, %y

Optimization: PR41173
Done: 1
Optimization is correct!

Reviewers: lebedev.ri, spatel

Reviewed By: lebedev.ri

Subscribers: nikic, craig.topper, llvm-commits, lebedev.ri

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64285

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365893 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-12 11:31:16 +00:00
Stefan Stipanovic
52d4c048b3 [Attributor] Deduce "nosync" function attribute.
Introduce and deduce "nosync" function attribute to indicate that a function
does not synchronize with another thread in a way that other thread might free memory.

Reviewers: jdoerfert, jfb, nhaehnle, arsenm

Subscribers: wdng, hfinkel, nhaenhle, mehdi_amini, steven_wu,
dexonsmith, arsenm, uenoku, hiraditya, jfb, llvm-commits

Differential Revision: https://reviews.llvm.org/D62766

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365830 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 21:37:40 +00:00
Huihui Zhang
f7984471d4 [InstCombine][NFCI] Add more test coverage to onehot_merge.ll
Prep work for upcoming patch D64275.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365828 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 21:28:25 +00:00
David Bolvansky
b88181df96 [NFC] Revisited tests for D64285
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365815 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 19:39:20 +00:00
Sanjay Patel
f2f36cde31 [InstCombine] don't move FP negation out of a constant expression
-(X * ConstExpr) becomes X * (-ConstExpr), so don't reverse that
and infinite loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365774 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 13:44:29 +00:00
David Bolvansky
1cd6b39053 [NFC] Updated tests for D64285
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365765 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 12:51:33 +00:00
David Bolvansky
0f3d79f3e7 [InstCombine] Reorder recently added/improved pow transformations
Changed cases are now faster with exp2.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365758 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 10:55:04 +00:00
Huihui Zhang
85d6f4b783 [InstCombine][NFCI] Add test coverage to onehot_merge.ll
Prep work for upcoming patch D64275.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365729 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 04:56:37 +00:00
Johannes Doerfert
0e9ef83946 Replace three "strip & accumulate" implementations with a single one
This patch replaces the three almost identical "strip & accumulate"
implementations for constant pointer offsets with a single one,
combining the respective functionalities. The old interfaces are kept
for now.

Differential Revision: https://reviews.llvm.org/D64468

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365723 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-11 01:14:48 +00:00
Roman Lebedev
4a25084284 [NFC][InstCombine] Comb through just-added "omit mask before left-shift" tests once more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365694 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-10 19:58:13 +00:00
Roman Lebedev
9737a7afc0 [NFC][InstCombine] Fixup some tests in just-added "omit mask before left-shift" tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365663 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-10 16:54:13 +00:00
Vedant Kumar
0edfaf6dd2 [CodeExtractor] Fix sinking of allocas with multiple bitcast uses (PR42451)
An alloca which can be sunk into the extraction region may have more
than one bitcast use. Move these uses along with the alloca to prevent
use-before-def.

Testing: check-llvm, stage2 build of clang

Fixes llvm.org/PR42451.

Differential Revision: https://reviews.llvm.org/D64463

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365660 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-10 16:32:20 +00:00
Roman Lebedev
424f2598df [NFC][InstCombine] Redundant masking before left-shift (PR42563)
alive proofs:
a,b:     https://rise4fun.com/Alive/4zsf
c,d,e,f: https://rise4fun.com/Alive/RC49

Indeed, not all of these patterns are canonical.
But since this fold will only produce a single instruction
i'm really interested in handling even uncanonical patterns.

Other than these 6 patterns, i can't think of any other
reasonable variants right now, although i'm sure they exist.

For now let's start with patterns where both shift amounts are variable,
with trivial constant "offset" between them, since i believe this is
both simplest to handle and i think this is most common.
But again, there are likely other variants where we could use
ValueTracking/ConstantRange to handle more cases.

https://bugs.llvm.org/show_bug.cgi?id=42563

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365641 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-10 15:08:06 +00:00
David Bolvansky
d1678ed7a7 [InstCombine] pow(C,x) -> exp2(log2(C)*x)
Summary:
Transform
pow(C,x) 

To
exp2(log2(C)*x) 

if C > 0, C != inf, C != NaN (and C is not power of 2, since we have some fold for such case already).

log(C) is folded by the compiler and exp2 is much faster to compute than pow.

Reviewers: spatel, efriedma, evandro

Reviewed By: evandro

Subscribers: lebedev.ri, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64099

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365637 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-10 14:43:27 +00:00
Sanjay Patel
094a0526ac [InferFunctionAttrs] add/adjust tests for dereferenceable; NFC
Based on review comments for D64258.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365636 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-10 14:41:47 +00:00
Serguei Katkov
b0cd2ae668 [SimpleLoopUnswitch] Don't consider unswitching switch insructions with one unique successor
Only instructions with two or more unique successors should be considered for unswitching.

Patch Author: Daniil Suchkov.

Reviewers: reames, asbirlea, skatkov
Reviewed By: skatkov
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D64404


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365611 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-10 10:25:22 +00:00
Serguei Katkov
a54df3d63c [SimpleLoopUnswitch] Add a test case exposing a bug
This test exposes a bug in SimpleLoopUnswitch that leads to a crash on
assert(SuccessorsCount > 1 && "Cannot unswitch a condition without multiple distinct successors!");
when SimpleLoopUnswitch considers unswitching of a loop by a switch with one successor.

Fix will be submitted soon.

Patch Author: Daniil Suchkov.

Reviewers: reames, asbirlea, skatkov
Reviewed By: skatkov
Subscribers: zzheng, llvm-commits
Differential Revision: https://reviews.llvm.org/D64403


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365600 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-10 08:25:48 +00:00
Sanjay Patel
10f530a453 [InstCombine] add tests for trunc(load); NFC
I'm not sure if transforming any of these is valid as
a target-independent fold, but we might as well have
a few tests here to confirm or deny our position.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365523 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-09 18:06:16 +00:00
David Bolvansky
73a92e6348 [NFC] Fixed tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365506 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-09 15:31:36 +00:00
David Bolvansky
b28b579f00 [NFC] Added tests for D64285
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365501 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-09 15:12:01 +00:00
Sanjay Patel
185d0fcbe6 [InferFunctionAttrs] add more tests for derefenceable; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365495 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-09 14:43:03 +00:00
Alex Bradbury
2a6ebe9bcc [RISCV] Fix RISCVTTIImpl::getIntImmCost for immediates where getMinSignedBits() > 64
APInt::getSExtValue will assert if getMinSignedBits() > 64. This can happen,
for instance, if examining an i128. Avoid this assertion by checking
Imm.getMinSignedBits() <= 64 before doing
getTLI()->isLegalAddImmediate(Imm.getSExtValue()). We could directly check
getMinSignedBits() <= 12 but it seems better to reuse the isLegalAddImmediate
helper for this.

Differential Revision: https://reviews.llvm.org/D64390



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365462 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-09 10:56:18 +00:00
Philip Reames
d06ee0e492 [LoopPred] Extend LFTR normalization to the inverse EQ case
A while back, I added support for NE latches formed by LFTR.  I didn't think that quite through, as LFTR will also produce the inverse EQ form for some loops and I hadn't handled that.  This change just adds handling for that case as well.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365419 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-09 01:27:45 +00:00
Johannes Doerfert
dab869542b [Attributor] Deduce the "returned" argument attribute
Deduce the "returned" argument attribute by collecting all potentially
returned values.

Not only the unique return value, if any, can be used by subsequent
attributes but also the set of all potentially returned values as well
as the mapping from returned values to return instructions that they
originate from (see AAReturnedValues::checkForallReturnedValues).

Change in statistics (-stats) for LLVM-TS + Spec2006, totaling ~19% more "returned" arguments.

  ADDED: attributor                   NumAttributesManifested                  n/a ->        637
  ADDED: attributor                   NumAttributesValidFixpoint               n/a ->      25545
  ADDED: attributor                   NumFnArgumentReturned                    n/a ->        637
  ADDED: attributor                   NumFnKnownReturns                        n/a ->      25545
  ADDED: attributor                   NumFnUniqueReturned                      n/a ->      14118
CHANGED: deadargelim                  NumRetValsEliminated                     470 ->        449 (    -4.468%)
REMOVED: functionattrs                NumReturned                              535 ->        n/a
CHANGED: indvars                      NumElimIdentity                          138 ->        164 (   +18.841%)

Reviewers: homerdin, hfinkel, fedor.sergeev, sanjoy, spatel, nlopes, nicholas, reames, efriedma, chandlerc

Subscribers: hiraditya, bollu, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D59919

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365407 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 23:27:20 +00:00
Sanjay Patel
a2a6bc5fb1 [InstCombine] fold insertelement into splat of same scalar
Forming the canonical splat shuffle improves analysis and
may allow follow-on transforms (although some possibilities
are missing as shown in the test diffs).

The backend generically turns these patterns into build_vector,
so there should be no codegen regressions. All targets are
expected to be able to lower splats efficiently.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365379 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 19:48:52 +00:00
Sanjay Patel
6568ffbaea [InstCombine] add tests for insert of same splatted scalar; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365362 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 18:03:22 +00:00
Sanjay Patel
ea3ab8c4b7 [InstCombine] canonicalize insert+splat to/from element 0 of vector
We recognize a splat from element 0 in (VectorUtils) llvm::getSplatValue()
and also in ShuffleVectorInst::isZeroEltSplatMask(), so this converts
to that form for better matching.

The backend generically turns these patterns into build_vector,
so there should be no codegen difference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365342 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 16:26:48 +00:00
Brian Homerding
7597e7f179 Add, and infer, a nofree function attribute
This patch adds a function attribute, nofree, to indicate that a function does
not, directly or indirectly, call a memory-deallocation function (e.g., free,
C++'s operator delete).

Reviewers: jdoerfert

Differential Revision: https://reviews.llvm.org/D49165


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365336 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 15:57:56 +00:00
Sanjay Patel
e3dca87669 [InstCombine] fix typo in test; NFC
I added this test in rL365325, but didn't mean to create an undef insert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365333 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 15:38:03 +00:00
Sanjay Patel
4fa3098716 [InstCombine] add tests for splat shuffles; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365325 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 14:49:21 +00:00
Cameron McInally
4190f23fa8 [Float2Int] Add support for unary FNeg to Float2Int
Differential Revision: https://reviews.llvm.org/D63941

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365324 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-08 14:46:07 +00:00
Petr Hosek
bd47e3ac42 Revert "[IRBuilder] Fold consistently for or/and whether constant is LHS or RHS"
This reverts commit r365260 which broke the following tests:

    Clang :: CodeGenCXX/cfi-mfcall.cpp
    Clang :: CodeGenObjC/ubsan-nullability.m
    LLVM :: Transforms/LoopVectorize/AArch64/pr36032.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365284 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-07 22:12:01 +00:00
Nikita Popov
48617a9069 [LFTR] Regenerate test checks; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365262 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-06 08:54:15 +00:00
Philip Reames
531d8c4961 [IRBuilder] Fold consistently for or/and whether constant is LHS or RHS
Without this, we have the unfortunate property that tests are dependent on the order of operads passed the CreateOr and CreateAnd functions.  In actual usage, we'd promptly optimize them away, but it made tests slightly more verbose than they should have been.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365260 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-06 04:28:00 +00:00
Sanjay Patel
0e3d9d873f [InferFunctionAttrs] add tests for 'dereferenceable' argument attribute; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365227 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-05 17:49:53 +00:00
Sanjay Patel
ad6324c46b [InstCombine] allow undef elements when forming splat from chain of insertelements
We allow forming a splat (broadcast) shuffle, but we were conservatively limiting
that to cases where all elements of the vector are specified. It should be safe
from a codegen perspective to allow undefined lanes of the vector because the
expansion of a splat shuffle would become the chain of inserts again.

Forming splat shuffles can reduce IR and help enable further IR transforms.
Motivating bugs:
https://bugs.llvm.org/show_bug.cgi?id=42174
https://bugs.llvm.org/show_bug.cgi?id=16739

Differential Revision: https://reviews.llvm.org/D63848

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365147 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-04 16:45:34 +00:00
David Bolvansky
93a84f12bb [NFC] Added tests for D64099
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365141 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-04 13:48:32 +00:00
Chen Zheng
7eaf8234db [PowerPC] Hardware Loop branch instruction's condition may not be icmp.
This fixes pr42492.
Differential Revision: https://reviews.llvm.org/D64124


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365104 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-04 01:51:47 +00:00
Eli Friedman
33f3187acf [JumpThreading] Fix threading with unusual PHI nodes.
If the block being cloned contains a PHI node, in general, we need to
clone that PHI node, even though it's trivial. If the operand of the PHI
is an instruction in the block being cloned, the correct value for the
operand doesn't exist until SSAUpdater constructs it.

We usually don't hit this issue because we try to avoid threading across
loop headers, but it's possible to hit this in some cases involving
irreducible CFGs.  I added a flag to allow threading across loop headers
to make the testcase easier to understand.

Thanks to Brian Rzycki for reducing the testcase.

Fixes https://bugs.llvm.org/show_bug.cgi?id=42085.

Differential Revision: https://reviews.llvm.org/D63913



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365094 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-03 23:12:39 +00:00
Philip Reames
da1c0f6889 [LFTR] Use SCEVExpander for the pointer limit case instead of manual IR gen
As noted in the test change, this is not trivially NFC, but all of the changes in output are cases where the SCEVExpander form is more canonical/optimal than the hand generation.  



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365075 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-03 20:03:46 +00:00
Philip Reames
d07577708c [LFTR] Hoist extend expressions outside of loops w/o waiting for LICM
The motivation for this is two fold:
1) Make the output (and thus tests)  a bit more readable to a human trying to understand the result of the transform
2) Reduce spurious diffs in a potential future change to restructure all of this logic to use SCEVExpander (which hoists by default)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365066 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-03 18:18:36 +00:00
Roman Lebedev
54ceae14a5 [NFC][InstCombine] onehot_merge.ll: add last few tests in the state they regress to in D62818
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365056 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-03 16:48:53 +00:00
Sanjay Patel
0e28b658d8 [SLP] add tests for bitcasted vector pointer load; NFC
I'm not sure if this falls within the scope of SLP,
but we could create vector loads for some of these
patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365055 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-03 16:46:14 +00:00
Roman Lebedev
d07ba468a4 [InstCombine] Y - ~X --> X + Y + 1 fold (PR42457)
Summary:
I *think* we'd want this new variant, because we obviously
have better handling for `add` as compared to `sub`/`not`.

https://rise4fun.com/Alive/WMn

Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=42457 | PR42457 ]]

Reviewers: spatel, nikic, huihuiz, efriedma

Reviewed By: spatel

Subscribers: RKSimon, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63992

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365011 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-03 09:41:50 +00:00
Eugene Leviant
39e1a0dcf2 [SCEV][LSR] Prevent using undefined value in binops
On some occasions ReuseOrCreateCast may convert previously
expanded value to undefined. That value may be passed by
SCEVExpander as an argument to InsertBinop making IV chain
undefined.

Differential revision: https://reviews.llvm.org/D63928 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365009 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-03 09:36:32 +00:00
Jordan Rupprecht
25fd8235ff Revert [InlineCost] cleanup calculations of Cost and Threshold
This reverts r364422 (git commit 1a3dc761860d620ac8ed7e32a4285952142f780b)

The inlining cost calculation is incorrect, leading to stack overflow due to large stack frames from heavy inlining.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365000 91177308-0d34-0410-b5e6-96231b3b80d8
2019-07-03 04:01:51 +00:00