Page MenuHomePhabricator

nikic (Nikita Popov)
User

Projects

User does not belong to any projects.

User Details

User Since
May 5 2018, 9:37 AM (217 w, 4 d)

Recent Activity

Today

nikic accepted D129276: [IR][OpaquePointers] Properly print cmpxchg with pointer operands..

LG

Thu, Jul 7, 5:30 AM · Restricted Project, Restricted Project
nikic added inline comments to D127383: Don't treat readnone call in presplit coroutine as not access memory.
Thu, Jul 7, 3:01 AM · Restricted Project, Restricted Project
nikic added inline comments to D129191: [IndVars] Eliminate redundant type cast between integer and float.
Thu, Jul 7, 2:16 AM · Restricted Project, Restricted Project
nikic added inline comments to D129140: [IndVars] Directly use integer induction for FPToSI of float induction..
Thu, Jul 7, 2:11 AM · Restricted Project, Restricted Project
nikic added inline comments to D127383: Don't treat readnone call in presplit coroutine as not access memory.
Thu, Jul 7, 1:39 AM · Restricted Project, Restricted Project
nikic added inline comments to D127383: Don't treat readnone call in presplit coroutine as not access memory.
Thu, Jul 7, 1:37 AM · Restricted Project, Restricted Project
nikic committed rG4a579abd9f95: [GlobalsModRef] Don't override getModRefBehavior() for CallBase (authored by nikic).
[GlobalsModRef] Don't override getModRefBehavior() for CallBase
Thu, Jul 7, 1:36 AM · Restricted Project, Restricted Project
nikic added a comment to D127383: Don't treat readnone call in presplit coroutine as not access memory.

Compile-time impact is low / acceptable: http://llvm-compile-time-tracker.com/compare.php?from=40a4078e14c2c6c5e2d0a1776285aa7491e791b3&to=d753f388d52778fff19b5a6d82a5b9c4869a4273&stat=instructions

Thu, Jul 7, 1:23 AM · Restricted Project, Restricted Project
nikic requested review of D129259: [UpdateTestChecks] Remove outdated help text.
Thu, Jul 7, 12:59 AM · Restricted Project, Restricted Project
nikic requested review of D129256: [BasicBlockUtils] Allow critical edge splitting with callbr terminators.
Thu, Jul 7, 12:48 AM · Restricted Project, Restricted Project
nikic added a comment to D126644: [llvm/CodeGen] Add ExpandLargeDivRem pass.

With the work around constant expressions (e.g. https://reviews.llvm.org/rG941c8e0ea50b), I might not need to handle div/mod constants anymore. For that reason, I would at least land this PR without support for transforming constant expressions.

Thu, Jul 7, 12:43 AM · Restricted Project, Restricted Project
nikic committed rGb6eeef071290: [LSR] Regenerate test checks (NFC) (authored by nikic).
[LSR] Regenerate test checks (NFC)
Thu, Jul 7, 12:35 AM · Restricted Project, Restricted Project
nikic committed rG40a4078e14c2: [BasicBlockUtils] Allow splitting predecessors with callbr terminators (authored by nikic).
[BasicBlockUtils] Allow splitting predecessors with callbr terminators
Thu, Jul 7, 12:18 AM · Restricted Project, Restricted Project
nikic closed D129205: [BasicBlockUtils] Allow splitting predecessors with callbr terminators.
Thu, Jul 7, 12:18 AM · Restricted Project, Restricted Project
nikic added a comment to D129193: [JumpThreading] Avoid threadThroughTwoBasicBlocks when PredPred BB ends with indirectbranch.

Do you need me to commit this for you? If so, please provide the "Name <email>" to use as attribution for the commit.

Thu, Jul 7, 12:16 AM · Restricted Project, Restricted Project
nikic added a comment to D129230: [IR][coroutine] make final and non-final llvm.coro.saves unique.

Another possibility is to mark llvm.coro.save as IntrNoMerge, though that would prevent any merging (similar to the SimplifyCFG patch, just only for this intrinsic and not other token-returning intrinsics).

Thu, Jul 7, 12:11 AM · Restricted Project, Restricted Project

Yesterday

nikic added a comment to D129205: [BasicBlockUtils] Allow splitting predecessors with callbr terminators.

If we don't support using arbitrary blockaddresses as destinations, can we stop using blockaddress to represent the destinations? The presence of blockaddress blocks optimizations even if we aren't imposing the full control flow restrictions.

Wed, Jul 6, 12:03 PM · Restricted Project, Restricted Project
nikic added inline comments to D129205: [BasicBlockUtils] Allow splitting predecessors with callbr terminators.
Wed, Jul 6, 9:51 AM · Restricted Project, Restricted Project
nikic requested review of D129214: [IndVars] Call replaceLoopPHINodesWithPreheaderValues() for already constant exits.
Wed, Jul 6, 8:30 AM · Restricted Project, Restricted Project
nikic committed rGb484cbbc682c: [IndVars] Regenerate test checks (NFC) (authored by nikic).
[IndVars] Regenerate test checks (NFC)
Wed, Jul 6, 8:14 AM · Restricted Project, Restricted Project
nikic accepted D129193: [JumpThreading] Avoid threadThroughTwoBasicBlocks when PredPred BB ends with indirectbranch.

Currently, we should also be checking for callbr as well, but I hope that the need for that goes away with D129205 anyway.

Wed, Jul 6, 7:55 AM · Restricted Project, Restricted Project
nikic updated the diff for D129205: [BasicBlockUtils] Allow splitting predecessors with callbr terminators.

Remove one more check.

Wed, Jul 6, 7:47 AM · Restricted Project, Restricted Project
nikic requested review of D129205: [BasicBlockUtils] Allow splitting predecessors with callbr terminators.
Wed, Jul 6, 7:41 AM · Restricted Project, Restricted Project
nikic committed rGcf7502a1ebe6: [LICM] Check opt output in test (NFC) (authored by nikic).
[LICM] Check opt output in test (NFC)
Wed, Jul 6, 7:22 AM · Restricted Project, Restricted Project
nikic added a comment to D124159: [SimplifyCFG] Thread branches on same condition in more cases (PR54980).

@nathanchance Thanks for the report. I've applied the obvious fix in https://github.com/llvm/llvm-project/commit/20962c1240691d25b21ce425313c81eed0b1b358. However, I think that this (and similar limitations relating to critical edge splitting) might actually be unnecessary since https://github.com/llvm/llvm-project/commit/7a7bba289521e6d4da199565cf72dc9eaed3d671. callbr has stricter semantics than indirectbr, and apparently updating successors of a callbr is supposed to be possible (because the blockaddresses used by it must be directly used in the call arguments and thus can be updated, while in the indirectbr case they may be passed indirectly).

Wed, Jul 6, 6:46 AM · Restricted Project, Restricted Project, Restricted Project
nikic committed rG20962c124069: [SimplifyCFG] Don't split predecessors of callbr terminator (authored by nikic).
[SimplifyCFG] Don't split predecessors of callbr terminator
Wed, Jul 6, 6:39 AM · Restricted Project, Restricted Project
nikic committed rGf96cb66d1931: [ValueTracking] Accept Instruction in isSafeToSpeculativelyExecute() (NFC) (authored by nikic).
[ValueTracking] Accept Instruction in isSafeToSpeculativelyExecute() (NFC)
Wed, Jul 6, 2:13 AM · Restricted Project, Restricted Project
nikic committed rGbb84e5eeffd1: [SelectionDAGISel] Drop unused variable (NFC) (authored by nikic).
[SelectionDAGISel] Drop unused variable (NFC)
Wed, Jul 6, 1:47 AM · Restricted Project, Restricted Project
nikic committed rG1ed8b2930248: [LoopVectorizationLegality] Drop unused variable (NFC) (authored by nikic).
[LoopVectorizationLegality] Drop unused variable (NFC)
Wed, Jul 6, 1:44 AM · Restricted Project, Restricted Project
nikic committed rG8ee913d83b17: [IR] Remove Constant::canTrap() (NFC) (authored by nikic).
[IR] Remove Constant::canTrap() (NFC)
Wed, Jul 6, 1:37 AM · Restricted Project, Restricted Project
nikic committed rG11950efe0682: [ConstExpr] Remove div/rem constant expressions (authored by nikic).
[ConstExpr] Remove div/rem constant expressions
Wed, Jul 6, 1:13 AM · Restricted Project, Restricted Project
nikic closed D129148: [ConstExpr] Remove div/rem constant expressions.
Wed, Jul 6, 1:13 AM · Restricted Project, Restricted Project
nikic committed rG02b38ba8aa6e: [ConstFold] Salvage some div/rem folding test (NFC) (authored by nikic).
[ConstFold] Salvage some div/rem folding test (NFC)
Wed, Jul 6, 1:03 AM · Restricted Project, Restricted Project
nikic committed rG9936d732cd17: [PowerPC] Simplify test for PR33636 (NFC) (authored by nikic).
[PowerPC] Simplify test for PR33636 (NFC)
Wed, Jul 6, 12:48 AM · Restricted Project, Restricted Project

Tue, Jul 5

nikic requested review of D129148: [ConstExpr] Remove div/rem constant expressions.
Tue, Jul 5, 9:38 AM · Restricted Project, Restricted Project
nikic committed rG07b185ed8157: [Thumb2] Remove unneeded IR from MIR test (NFC) (authored by nikic).
[Thumb2] Remove unneeded IR from MIR test (NFC)
Tue, Jul 5, 9:19 AM · Restricted Project, Restricted Project
nikic committed rGe70ea18e2fde: [Assembler] Name globals in test (NFC) (authored by nikic).
[Assembler] Name globals in test (NFC)
Tue, Jul 5, 9:02 AM · Restricted Project, Restricted Project
nikic added a comment to D124159: [SimplifyCFG] Thread branches on same condition in more cases (PR54980).

I ended up reverting this patch in https://github.com/llvm/llvm-project/commit/a4772cbaf0dc717ab6b4639272ca2910897613f0, because I reduced another infinite loop (https://github.com/llvm/llvm-project/issues/56203) to it as well, which makes it the third one. It's probably not possible to reliably prevent infinite combine loops in this area with a dominator tree.

Tue, Jul 5, 7:59 AM · Restricted Project, Restricted Project, Restricted Project
nikic added a reverting change for rG4e545bdb355a: [SimplifyCFG] Thread branches on same condition in more cases (PR54980): rGa4772cbaf0dc: Revert "[SimplifyCFG] Thread branches on same condition in more cases (PR54980)".
Tue, Jul 5, 7:58 AM · Restricted Project, Restricted Project, Restricted Project
nikic committed rGa4772cbaf0dc: Revert "[SimplifyCFG] Thread branches on same condition in more cases (PR54980)" (authored by nikic).
Revert "[SimplifyCFG] Thread branches on same condition in more cases (PR54980)"
Tue, Jul 5, 7:58 AM · Restricted Project, Restricted Project, Restricted Project
nikic added a reverting change for D124159: [SimplifyCFG] Thread branches on same condition in more cases (PR54980): rGa4772cbaf0dc: Revert "[SimplifyCFG] Thread branches on same condition in more cases (PR54980)".
Tue, Jul 5, 7:58 AM · Restricted Project, Restricted Project, Restricted Project
nikic added inline comments to D128820: [ConstExpr] Don't create div/rem expressions.
Tue, Jul 5, 6:57 AM · Restricted Project, Restricted Project, Restricted Project
nikic committed rG935570b2ad80: [ConstExpr] Don't create div/rem expressions (authored by nikic).
[ConstExpr] Don't create div/rem expressions
Tue, Jul 5, 6:55 AM · Restricted Project, Restricted Project, Restricted Project
nikic closed D128820: [ConstExpr] Don't create div/rem expressions.
Tue, Jul 5, 6:55 AM · Restricted Project, Restricted Project, Restricted Project
nikic committed rGe4d1d0cc2c9c: [SCEV] Fix isImpliedViaMerge() with values from previous iteration (PR56242) (authored by nikic).
[SCEV] Fix isImpliedViaMerge() with values from previous iteration (PR56242)
Tue, Jul 5, 6:31 AM · Restricted Project, Restricted Project
nikic closed D128640: [SCEV] Fix isImpliedViaMerge() with values from previous iteration (PR56242).
Tue, Jul 5, 6:31 AM · Restricted Project, Restricted Project
nikic added a comment to D124159: [SimplifyCFG] Thread branches on same condition in more cases (PR54980).

@HanKuanChen Thanks for the report! I've landed a fix for this test case in https://github.com/llvm/llvm-project/commit/dc969061c68e62328607d68215ed8b9ef4a1e4b1. This is based on making SimplifyCFG behave more like JumpThreading, which does not have an infinite loop for this case. Let me know if you see further issues.

Tue, Jul 5, 5:38 AM · Restricted Project, Restricted Project, Restricted Project
nikic committed rGdc969061c68e: [SimplifyCFG] Thread all predecessors with same value at once (authored by nikic).
[SimplifyCFG] Thread all predecessors with same value at once
Tue, Jul 5, 5:34 AM · Restricted Project, Restricted Project
nikic added inline comments to D129140: [IndVars] Directly use integer induction for FPToSI of float induction..
Tue, Jul 5, 5:00 AM · Restricted Project, Restricted Project
nikic committed rG02ab87f54305: [SimplifyCFG] Add additional jump threading test (NFC) (authored by nikic).
[SimplifyCFG] Add additional jump threading test (NFC)
Tue, Jul 5, 4:58 AM · Restricted Project, Restricted Project
nikic added a comment to D129140: [IndVars] Directly use integer induction for FPToSI of float induction..

Related: https://reviews.llvm.org/D125774

Tue, Jul 5, 4:55 AM · Restricted Project, Restricted Project
nikic added a comment to rG19a1e20b8a0f: [VectorCombine] Improve shuffle select shuffle-of-shuffles.

Yeah, this is on X86. Let me know if I need to extract the IR for this.

Tue, Jul 5, 1:22 AM · Restricted Project, Restricted Project
nikic added a comment to rG19a1e20b8a0f: [VectorCombine] Improve shuffle select shuffle-of-shuffles.

This patch causes an assertion failure during LTO when building bullet:

ld: /home/npopov/repos/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = llvm::ShuffleVectorInst; From = llvm::Value]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.

Steps to reproduce:

cmake -G Ninja -Bbuild-ReleaseLTO-g -H. \
    -DCMAKE_C_COMPILER=$PATH_TO/bin/clang \
    -C cmake/caches/ReleaseLTO-g.cmake
cd build-ReleaseLTO-g
ninja bullet
Tue, Jul 5, 12:45 AM · Restricted Project, Restricted Project
nikic added a reverting change for rG19a1e20b8a0f: [VectorCombine] Improve shuffle select shuffle-of-shuffles: rGb69c75d53f8d: Revert "[VectorCombine] Improve shuffle select shuffle-of-shuffles".
Tue, Jul 5, 12:31 AM · Restricted Project, Restricted Project
nikic committed rGb69c75d53f8d: Revert "[VectorCombine] Improve shuffle select shuffle-of-shuffles" (authored by nikic).
Revert "[VectorCombine] Improve shuffle select shuffle-of-shuffles"
Tue, Jul 5, 12:31 AM · Restricted Project, Restricted Project
nikic added a reverting change for D128732: [VectorCombine] Improve shuffle select shuffle-of-shuffles: rGb69c75d53f8d: Revert "[VectorCombine] Improve shuffle select shuffle-of-shuffles".
Tue, Jul 5, 12:31 AM · Restricted Project, Restricted Project
nikic accepted D129025: [SimplifyCFG] Skip hoisting common instructions that return token type.

LGTM

Tue, Jul 5, 12:18 AM · Restricted Project, Restricted Project
nikic added a comment to D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable.

FWIW the bitcode patch has landed, so implementing the variant using a token type should be possible now. I'm not sure whether it's better to start with the current patch where the intrinsic is optional, or go directly to the one where it is required.

Tue, Jul 5, 12:17 AM · Restricted Project, Restricted Project, Restricted Project

Mon, Jul 4

nikic added inline comments to D129025: [SimplifyCFG] Skip hoisting common instructions that return token type.
Mon, Jul 4, 2:28 PM · Restricted Project, Restricted Project
nikic added inline comments to D129025: [SimplifyCFG] Skip hoisting common instructions that return token type.
Mon, Jul 4, 12:50 PM · Restricted Project, Restricted Project
nikic requested changes to D128582: Enable SeparateConstOffsetFromGEPPass() at -O3 and -O2.

Hello. Unfortunately, I doubt that people will be in favour of this approach, especially if it is introducing ptr2int and int2ptr's so early in the pass pipeline. It looks like a pass that needs to be run as part of the backend.

Mon, Jul 4, 12:14 PM · Restricted Project, Restricted Project
nikic updated the diff for D128820: [ConstExpr] Don't create div/rem expressions.

Check for desirable binops in one more place.

Mon, Jul 4, 7:59 AM · Restricted Project, Restricted Project, Restricted Project
nikic committed rGabbd684c02c7: [InstCombine] Avoid ConstantExpr::get() in phi binop fold (authored by nikic).
[InstCombine] Avoid ConstantExpr::get() in phi binop fold
Mon, Jul 4, 7:47 AM · Restricted Project, Restricted Project
nikic committed rG89cb8cae606b: [Bitcode] Use bitcode input for test (NFC) (authored by nikic).
[Bitcode] Use bitcode input for test (NFC)
Mon, Jul 4, 7:42 AM · Restricted Project, Restricted Project
nikic committed rGf93cd56262d1: [BPI] Avoid ConstantExpr::get() (authored by nikic).
[BPI] Avoid ConstantExpr::get()
Mon, Jul 4, 7:05 AM · Restricted Project, Restricted Project
nikic committed rG93cbdaef0455: [Reassociate] Avoid ConstantExpr::get() (authored by nikic).
[Reassociate] Avoid ConstantExpr::get()
Mon, Jul 4, 6:19 AM · Restricted Project, Restricted Project
nikic committed rG32a76fc292d9: [SCEVExpander] Avoid ConstantExpr::get() (NFCI) (authored by nikic).
[SCEVExpander] Avoid ConstantExpr::get() (NFCI)
Mon, Jul 4, 5:59 AM · Restricted Project, Restricted Project
nikic updated the diff for D128820: [ConstExpr] Don't create div/rem expressions.

Be more thorough about not creating div/rem expressions, update tests.

Mon, Jul 4, 5:50 AM · Restricted Project, Restricted Project, Restricted Project
nikic committed rG8e70258b18ba: [AMDGPUCodeGenPrepare] Check result of ConstantFoldBinaryOpOperands() (authored by nikic).
[AMDGPUCodeGenPrepare] Check result of ConstantFoldBinaryOpOperands()
Mon, Jul 4, 5:22 AM · Restricted Project, Restricted Project
nikic committed rG4905bcac00e6: [ConstantFolding] Check return value of ConstantFoldInstOperandsImpl() (authored by nikic).
[ConstantFolding] Check return value of ConstantFoldInstOperandsImpl()
Mon, Jul 4, 5:20 AM · Restricted Project, Restricted Project
nikic requested changes to D127726: [SimplifyCFG] Don't sink common code if PHI node with some GEPs is created.

I don't think this hack is acceptable. The actual problem here seems to be that the phi (gep(p, c1), gep(p, c2)) doesn't get converted into gep p, phi(c1, c2) afterwards, which is what would give you the best of both worlds: The store is sunk, but we still make use of the common base.

Mon, Jul 4, 2:26 AM · Restricted Project, Restricted Project
nikic added a reviewer for D129025: [SimplifyCFG] Skip hoisting common instructions that return token type: efriedma.

Don't think we have a clear understanding of the transforms that are valid for token types, but this generally looks reasonable to me. We should avoid making token values flow across control flow edges, even if it does not require introducing a phi.

Mon, Jul 4, 1:59 AM · Restricted Project, Restricted Project
nikic committed rG9604601c9394: [SimplifyCFG] Remove redundant checks for hoisting (NFCI) (authored by nikic).
[SimplifyCFG] Remove redundant checks for hoisting (NFCI)
Mon, Jul 4, 1:54 AM · Restricted Project, Restricted Project
nikic accepted D128939: [InstCombine] Fold memchr and strchr equality with first argument.

LGTM

Mon, Jul 4, 1:40 AM · Restricted Project, Restricted Project
nikic added a comment to D128640: [SCEV] Fix isImpliedViaMerge() with values from previous iteration (PR56242).

Ping

Mon, Jul 4, 1:00 AM · Restricted Project, Restricted Project
nikic committed rG7283f48a05de: [IR] Remove support for insertvalue constant expression (authored by nikic).
[IR] Remove support for insertvalue constant expression
Mon, Jul 4, 12:27 AM · Restricted Project, Restricted Project
nikic closed D128719: [IR] Remove support for insertvalue constant expression.
Mon, Jul 4, 12:27 AM · Restricted Project, Restricted Project

Sun, Jul 3

nikic added inline comments to D128895: [InstCombine] Make use of low zero bits to determine exact int->fp cast.
Sun, Jul 3, 7:43 AM · Restricted Project, Restricted Project

Sat, Jul 2

nikic added a comment to D128999: [CGSCC] Don't count calls to intrinsic functions in finding potential deviritualizations..

memcpy the libcall can be an indirect call target. llvm.memcpy the intrinsic cannot be. If an indirect memcpy becomes direct and is then replaced with the intrinsic, that's a divirtualization, but I don't think it's one relevant for the purposes of DevirtSCC, because such a call cannot be inlined. (Phrased like that, I think the relevant property here is not so much that something is an intrinsic, but that it is a declaration, as declarations are not eligible for inlining.)

Sat, Jul 2, 10:49 AM · Restricted Project, Restricted Project

Fri, Jul 1

nikic added inline comments to D129009: [LTO] Fix LTO for aliased IFuncs.
Fri, Jul 1, 2:20 PM · Restricted Project, Restricted Project, Restricted Project
nikic requested changes to D129003: [WPD] Filter out intrinsics inserted from whole-program-vtables.
Fri, Jul 1, 2:18 PM · Restricted Project, Restricted Project
nikic added reviewers for D129003: [WPD] Filter out intrinsics inserted from whole-program-vtables: nikic, aeubanks.

This should be split into a patch for CallSiteSplitting and one for Loads. For CallSiteSplitting, you'll probably want to implement ephemeral value handling along the lines of https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Utils/SimplifyCFG.cpp#L2941. For Loads, we'd want something along the lines of D101553.

Fri, Jul 1, 2:18 PM · Restricted Project, Restricted Project
nikic requested changes to D128999: [CGSCC] Don't count calls to intrinsic functions in finding potential deviritualizations..

I think the general idea behind this change makes sense. However, we should be treating all intrinsics the same way here (by skipping them), and not special-case assume-like and dbg intrinsics. Intrinsics generally cannot be called indirectly (this is enforced by the IR verifier), so they are irrelevant for the purposes of devirtualization.

Fri, Jul 1, 2:08 PM · Restricted Project, Restricted Project
nikic accepted D128670: [SimplifyCFG] teach simplifycfg not to introduce ptrtoint for NI pointers.

LG

Fri, Jul 1, 1:58 PM · Restricted Project, Restricted Project
nikic added a comment to D127392: [InstCombine] Combine consecutive loads which are being merged to form a wider load..

When switching this to AggressiveInstCombine, I would strongly recommend to start with a much more minimal patch. Handle only a single simple case, without any of the possible variants. We can build on that base later.

Fri, Jul 1, 9:27 AM · Restricted Project, Restricted Project
nikic accepted D128954: [InstCombine] Transform strrchr to memrchr for constant strings.

LGTM

Fri, Jul 1, 8:33 AM · Restricted Project, Restricted Project
nikic committed rG560e694d48a6: [AST] Don't assert instruction reads/writes memory (PR51333) (authored by nikic).
[AST] Don't assert instruction reads/writes memory (PR51333)
Fri, Jul 1, 8:05 AM · Restricted Project, Restricted Project
nikic closed D127947: [AST] Don't assert instruction reads/writes memory (PR51333).
Fri, Jul 1, 8:04 AM · Restricted Project, Restricted Project
nikic added inline comments to D127947: [AST] Don't assert instruction reads/writes memory (PR51333).
Fri, Jul 1, 7:31 AM · Restricted Project, Restricted Project
nikic committed rGc8bd3e7825a9: [SCEV] Remove unnecessary pointer handling in BuildConstantFromSCEV (NFCI) (authored by nikic).
[SCEV] Remove unnecessary pointer handling in BuildConstantFromSCEV (NFCI)
Fri, Jul 1, 7:30 AM · Restricted Project, Restricted Project
nikic committed rG65d59b42658f: [LoopDeletion] Fix deletion with unusual predecessor terminator (PR56266) (authored by nikic).
[LoopDeletion] Fix deletion with unusual predecessor terminator (PR56266)
Fri, Jul 1, 7:14 AM · Restricted Project, Restricted Project
nikic committed rGba1e04b9668b: [ConstantRange] Fix sdiv() with one bit values (PR56333) (authored by nikic).
[ConstantRange] Fix sdiv() with one bit values (PR56333)
Fri, Jul 1, 6:45 AM · Restricted Project, Restricted Project
nikic committed rG21933b2f7f02: [IRBuilder] Move CreateNeg() to fold API (authored by nikic).
[IRBuilder] Move CreateNeg() to fold API
Fri, Jul 1, 5:56 AM · Restricted Project, Restricted Project
nikic committed rG5c8021777c3a: [IRBuilder] Move CreateNot() to fold API (authored by nikic).
[IRBuilder] Move CreateNot() to fold API
Fri, Jul 1, 5:49 AM · Restricted Project, Restricted Project
nikic abandoned D128917: [SCEVExpander] Use IRBuilder to create BinOp.

Yeah, I think I'm going to drop this for now. What would probably make most sense to me is that the caller of SCEVExpander can provide the builder, so that different users can use different configurations. But that would need some IRBuilder API changes, because we'd still want to use a custom inserter in either case.

Fri, Jul 1, 5:40 AM · Restricted Project, Restricted Project
nikic committed rGfabe91570547: [SimplifyLibCalls] Use inbounds GEP (authored by nikic).
[SimplifyLibCalls] Use inbounds GEP
Fri, Jul 1, 5:32 AM · Restricted Project, Restricted Project
nikic added a comment to D127947: [AST] Don't assert instruction reads/writes memory (PR51333).

Ping :)

Fri, Jul 1, 5:14 AM · Restricted Project, Restricted Project
nikic accepted D127835: [SCEV] recognize llvm.annotation intrinsic.

LGTM

Fri, Jul 1, 5:13 AM · Restricted Project, Restricted Project
nikic added a comment to D128939: [InstCombine] Fold memchr and strchr equality with first argument.

This looks fine, only bit I'm uncertain about is the special-case for strchr(A, '\0') == null. Please precommit the tests to show current codegen. Possibly we can address that differently, in particular I notice that we're currently missing inbounds on GEPs, which might be limiting subsequent comparison folding.

Fri, Jul 1, 1:09 AM · Restricted Project, Restricted Project
nikic added inline comments to D128954: [InstCombine] Transform strrchr to memrchr for constant strings.
Fri, Jul 1, 12:43 AM · Restricted Project, Restricted Project