6 Commits

Author SHA1 Message Date
Michael Kuperstein
093715aad1 [PM] Port LowerGuardIntrinsic to the new PM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@277057 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-28 22:08:41 +00:00
Sanjoy Das
9dbb32236a [LowerGuards] Rename variable; NFC
PredicatePassProbability is a better name for what LikelyBranchWeight
was trying to express.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269999 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-18 23:16:27 +00:00
Sanjoy Das
b4edd72f76 [Guards] Add branch metadata when lowering
Guards are expected to basically never fail.  Reflect this in the branch
probabilities in their lowered form.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269791 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-17 17:51:19 +00:00
Sanjoy Das
793e61921c [LowerGuardIntrinsics] Keep track of !make.implicit metadata
If a guard call being lowered by LowerGuardIntrinsics has the
`!make.implicit` metadata attached, then reattach the metadata to the
branch in the resulting expanded form of the intrinsic.  This allows us
to implement null checks as guards and still get the benefit of implicit
null checks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268148 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-30 00:55:59 +00:00
Sanjoy Das
001d688855 [LowerGuardIntrinsics] Preserve calling conv when lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268142 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-30 00:17:47 +00:00
Sanjoy Das
de765686f8 Introduce a @llvm.experimental.guard intrinsic
Summary:
As discussed on llvm-dev[1].

This change adds the basic boilerplate code around having this intrinsic
in LLVM:

 - Changes in Intrinsics.td, and the IR Verifier
 - A lowering pass to lower @llvm.experimental.guard to normal
   control flow
 - Inliner support

[1]: http://lists.llvm.org/pipermail/llvm-dev/2016-February/095523.html

Reviewers: reames, atrick, chandlerc, rnk, JosephTremoulet, echristo

Subscribers: mcrosier, llvm-commits

Differential Revision: http://reviews.llvm.org/D18527

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264976 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-31 00:18:46 +00:00