Page MenuHomePhabricator

aqjune (Juneyoung Lee)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 17 2017, 8:49 PM (157 w, 2 d)

Recent Activity

Sun, Jan 19

aqjune added a comment to D29014: [SelDag][MIR] Add FREEZE.

For the next step, what can I do?

Sun, Jan 19, 4:40 PM · Restricted Project
aqjune added inline comments to D29014: [SelDag][MIR] Add FREEZE.
Sun, Jan 19, 4:09 PM · Restricted Project
aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.
  • Rebase
  • Remove AsmPrinter::emitFreeze
Sun, Jan 19, 4:00 PM · Restricted Project

Tue, Jan 14

aqjune added a comment to D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).

Just noticed that I landed this without explicit accept; sorry.
PR44543 is now resolved.

Tue, Jan 14, 10:42 AM · Restricted Project
aqjune committed rG3e32b7e12701: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load… (authored by aqjune).
[InstCombine] Let combineLoadToNewType preserve ABI alignment of the load…
Tue, Jan 14, 10:23 AM
aqjune closed D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).
Tue, Jan 14, 10:23 AM · Restricted Project
aqjune updated the diff for D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).

https://reviews.llvm.org/rG0877843ddacc applied, update diff from master

Tue, Jan 14, 10:04 AM · Restricted Project
aqjune committed rG0877843ddacc: [test] Make data layout of load-bitcast64.ll explicit, use update_test_checks.py (authored by aqjune).
[test] Make data layout of load-bitcast64.ll explicit, use update_test_checks.py
Tue, Jan 14, 9:55 AM
aqjune added inline comments to D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).
Tue, Jan 14, 9:27 AM · Restricted Project
aqjune added inline comments to D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).
Tue, Jan 14, 9:27 AM · Restricted Project
aqjune updated the diff for D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).

Address comments

Tue, Jan 14, 9:27 AM · Restricted Project
aqjune added reviewers for D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543): spatel, lebedev.ri.
Tue, Jan 14, 8:22 AM · Restricted Project
aqjune updated the diff for D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).

Minor update

Tue, Jan 14, 8:21 AM · Restricted Project
aqjune created D72710: [InstCombine] Let combineLoadToNewType preserve ABI alignment of the load (PR44543).
Tue, Jan 14, 8:12 AM · Restricted Project

Thu, Jan 9

aqjune added a comment to D29014: [SelDag][MIR] Add FREEZE.

BTW, there was a discussion about IMPLICIT_DEF as well, about whether it should return consistent value for every use vs. it can return different values per use (as IR's undef).

Thu, Jan 9, 4:16 PM · Restricted Project
aqjune added a comment to D29014: [SelDag][MIR] Add FREEZE.

To synchronize - the remaining issue was about duplicability of the freeze instruction in MIR.

Thu, Jan 9, 8:21 AM · Restricted Project
aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.
  • Rebase
  • Address a comment
Thu, Jan 9, 8:12 AM · Restricted Project

Mon, Jan 6

aqjune committed rGff554a917903: Let PassBuilder Expose PassInstrumentationCallbacks (authored by aqjune).
Let PassBuilder Expose PassInstrumentationCallbacks
Mon, Jan 6, 9:12 PM
aqjune closed D71086: Let PassBuilder Expose PassInstrumentationCallbacks.
Mon, Jan 6, 9:11 PM · Restricted Project
aqjune updated the diff for D71086: Let PassBuilder Expose PassInstrumentationCallbacks.
  • Address a comment
Mon, Jan 6, 9:09 PM · Restricted Project

Sat, Jan 4

aqjune added a comment to D71086: Let PassBuilder Expose PassInstrumentationCallbacks.

ping

Sat, Jan 4, 5:06 AM · Restricted Project

Dec 20 2019

aqjune added a comment to D71771: [InstCombine] check alloc size in bitcast of geps fold (PR44321) .

LGTM!

Dec 20 2019, 10:51 AM · Restricted Project
aqjune accepted D71771: [InstCombine] check alloc size in bitcast of geps fold (PR44321) .
Dec 20 2019, 10:51 AM · Restricted Project

Dec 15 2019

aqjune updated the diff for D71086: Let PassBuilder Expose PassInstrumentationCallbacks.

Sorry for my delay.
I updated the function name & added a unit test.

Dec 15 2019, 9:55 AM · Restricted Project

Dec 5 2019

aqjune abandoned D50295: Let GetUnderlyingObject/Objects use MemorySSA.
Dec 5 2019, 12:28 PM
aqjune added reviewers for D71086: Let PassBuilder Expose PassInstrumentationCallbacks: chandlerc, philip.pfaffe, fedor.sergeev.
Dec 5 2019, 12:26 PM · Restricted Project
aqjune created D71086: Let PassBuilder Expose PassInstrumentationCallbacks.
Dec 5 2019, 12:18 PM · Restricted Project

Nov 25 2019

aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.

I added description about FREEZE and IMPLICIT_DEF to TargetOpcodes.def.
To address the legalization issue, updated the semantics so FREEZEs return the same value if placed consecutively. Would this properly address the issue?

Nov 25 2019, 7:28 AM · Restricted Project

Nov 23 2019

aqjune added a comment to D70623: [SCEV] Compute trip counts w/frozen conditions.

Currently ScalarEvolution::getBackedgeTakenCount() is commented as follows, which is not clear about the case when instruction returning nondeterministic value is involved (such as freeze).

Nov 23 2019, 8:59 AM · Restricted Project

Nov 22 2019

aqjune added a comment to D69932: [IR] Redefine Freeze instruction.

Fixed by https://github.com/llvm/llvm-project/commit/1465b8bc3a2435eab46582616bdf7c6aee117e8d

Nov 22 2019, 5:47 AM · Restricted Project
aqjune committed rG1465b8bc3a24: [Test] Fix freeze ocaml test failure (authored by aqjune).
[Test] Fix freeze ocaml test failure
Nov 22 2019, 5:38 AM
aqjune added a comment to D69932: [IR] Redefine Freeze instruction.

Hi, sorry I'll fix it soon, perhaps in an hour or so.

Nov 22 2019, 4:52 AM · Restricted Project

Nov 17 2019

aqjune added a comment to D70246: [InstCombine] remove identity shuffle simplification for mask with undefs.

Hi Juneyoung. Is that a typo? undef & 0 should be 0.

Nov 17 2019, 11:17 PM · Restricted Project
aqjune added a comment to D70246: [InstCombine] remove identity shuffle simplification for mask with undefs.

This patch looks good to me. @nlopes @regehr @lebedev.ri

Nov 17 2019, 9:24 PM · Restricted Project
aqjune added a comment to D70246: [InstCombine] remove identity shuffle simplification for mask with undefs.

This is correct based on my understanding of poison (and what we've implemented so far), but we do not explicitly state that poison can occur per-element of a vector. Should we add a LangRef edit here or in a separate patch to address that?

Nov 17 2019, 4:36 PM · Restricted Project

Nov 15 2019

aqjune added inline comments to D29014: [SelDag][MIR] Add FREEZE.
Nov 15 2019, 12:55 AM · Restricted Project

Nov 14 2019

aqjune added inline comments to D29014: [SelDag][MIR] Add FREEZE.
Nov 14 2019, 11:36 PM · Restricted Project
aqjune added inline comments to D29014: [SelDag][MIR] Add FREEZE.
Nov 14 2019, 10:16 PM · Restricted Project
aqjune added inline comments to D29014: [SelDag][MIR] Add FREEZE.
Nov 14 2019, 9:55 PM · Restricted Project
aqjune added inline comments to D29014: [SelDag][MIR] Add FREEZE.
Nov 14 2019, 9:39 PM · Restricted Project
aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.
  • Add nounwind to tests
Nov 14 2019, 8:47 PM · Restricted Project
aqjune added a comment to D70246: [InstCombine] remove identity shuffle simplification for mask with undefs.

AFAIK, no - but that's because we were using 'undef' in the docs here:
http://llvm.org/docs/LangRef.html#shufflevector-instruction
(no mention of poison)

Nov 14 2019, 7:02 PM · Restricted Project
aqjune added a comment to D70246: [InstCombine] remove identity shuffle simplification for mask with undefs.

The optimization can be kept live by adding freeze (shufflevector <4 x float> %arg, ... -> freeze %arg), but existing analyzers are not aware of freeze yet (which will block following optimizations) and the underlying problem is more related with interaction of undef/poison (which disappears if undef is removed), so I'm fine with this patch's direction.

Nov 14 2019, 11:29 AM · Restricted Project

Nov 13 2019

aqjune added inline comments to D29014: [SelDag][MIR] Add FREEZE.
Nov 13 2019, 10:52 PM · Restricted Project
aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.
  • Add freeze IR -> MIR test
Nov 13 2019, 10:52 PM · Restricted Project

Nov 11 2019

aqjune retitled D29014: [SelDag][MIR] Add FREEZE from [SelDag] Implement FREEZE node to [SelDag][MIR] Add FREEZE .
Nov 11 2019, 11:12 PM · Restricted Project
aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.
  • Let FastISel emit FREEZE
  • Let SelectionDAGBuilder::visitFreeze lower freeze IR instructions
  • Minor fixes
Nov 11 2019, 11:00 PM · Restricted Project
aqjune added a comment to D29013: Add InstCombine/InstructionSimplify support for Freeze Instruction.

LGTM.

p.s. Do you have a list of items for this work somewhere? We clearly need support in a number of passes, is there a master list so that we can split work once the IR def pass lands?

Nov 11 2019, 8:16 PM · Restricted Project
aqjune committed rG4187cb138b1c: Add InstCombine/InstructionSimplify support for Freeze Instruction (authored by aqjune).
Add InstCombine/InstructionSimplify support for Freeze Instruction
Nov 11 2019, 7:22 PM
aqjune closed D29013: Add InstCombine/InstructionSimplify support for Freeze Instruction.
Nov 11 2019, 7:22 PM · Restricted Project
aqjune committed rG5c6bfa9c7a7e: [IR] Resolve an error at freeze's unit tests (authored by aqjune).
[IR] Resolve an error at freeze's unit tests
Nov 11 2019, 6:36 PM
aqjune committed rGe87d71668e10: [IR] Redefine Freeze instruction (authored by aqjune).
[IR] Redefine Freeze instruction
Nov 11 2019, 5:50 PM
aqjune closed D69932: [IR] Redefine Freeze instruction.
Nov 11 2019, 5:50 PM · Restricted Project
aqjune added a comment to D29014: [SelDag][MIR] Add FREEZE.

I added FREEZE pseudoinstruction to MachineIR, as it seemed to be the succinct way to make it correct.
I made ExpandPostRAPseudos expand the FREEZE to register-copy assembly instruction. ExpandPostRAPseudos pass is done after register allocation (which, or at least a pass relevant to it, seems to replace uses of IMPLICIT_DEF with different registers) as well as ProcessImplicitDef (which is the culprit of the incorrect PHI optimization example) and PHIElimination. I left a commit that explicitly states that IMPLICIT_DEF cannot be used in an undef-y way after the pass.

Nov 11 2019, 9:08 AM · Restricted Project
aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.
  • Add FREEZE pseudoinstruction for MachineIR
  • Let ExpandPostRAPseudos expand FREEZE
  • Address reviewers' comments
  • Add tests for function call / phi
  • Add a comment to TargetPassConfig stating that after ExpandPostRAPseudos IMPLICIT_DEF should not be optimized to different registers/constants
Nov 11 2019, 8:58 AM · Restricted Project

Nov 6 2019

aqjune added an edge to rG58acbce3def6: [IR] Add Freeze instruction: D69932: [IR] Redefine Freeze instruction.
Nov 6 2019, 11:46 PM
aqjune added a comment to D29011: [IR] Add Freeze instruction.

The new patch is here: https://reviews.llvm.org/D69932

Nov 6 2019, 11:46 PM · Restricted Project
aqjune added child revisions for D69932: [IR] Redefine Freeze instruction: D29014: [SelDag][MIR] Add FREEZE, D29013: Add InstCombine/InstructionSimplify support for Freeze Instruction, D29016: [LoopUnswitch] Do not freeze condition if hoisted branch is guaranteed to be reachable, D29015: [LoopUnswitch] Fix introduction of UB when hoisted condition may be undef or poison.
Nov 6 2019, 11:46 PM · Restricted Project
aqjune added a parent revision for D29015: [LoopUnswitch] Fix introduction of UB when hoisted condition may be undef or poison: D69932: [IR] Redefine Freeze instruction.
Nov 6 2019, 11:46 PM
aqjune added a parent revision for D29016: [LoopUnswitch] Do not freeze condition if hoisted branch is guaranteed to be reachable: D69932: [IR] Redefine Freeze instruction.
Nov 6 2019, 11:46 PM
aqjune added a parent revision for D29014: [SelDag][MIR] Add FREEZE: D69932: [IR] Redefine Freeze instruction.
Nov 6 2019, 11:46 PM · Restricted Project
aqjune added a parent revision for D29013: Add InstCombine/InstructionSimplify support for Freeze Instruction: D69932: [IR] Redefine Freeze instruction.
Nov 6 2019, 11:46 PM · Restricted Project
aqjune added a comment to D69932: [IR] Redefine Freeze instruction.

Previous patch: https://reviews.llvm.org/D29011

Nov 6 2019, 11:46 PM · Restricted Project
aqjune added 1 commit(s) for D69932: [IR] Redefine Freeze instruction: rG58acbce3def6: [IR] Add Freeze instruction.
Nov 6 2019, 11:46 PM · Restricted Project
aqjune added reviewers for D69932: [IR] Redefine Freeze instruction: craig.topper, jdoerfert, lebedev.ri.
Nov 6 2019, 11:37 PM · Restricted Project
Herald added a reviewer for D69932: [IR] Redefine Freeze instruction: whitequark.
Nov 6 2019, 11:37 PM · Restricted Project

Nov 5 2019

aqjune added a comment to D29011: [IR] Add Freeze instruction.

Does a ConstantExpr freeze really make sense? ConstantExprs are uniqued by the LLVMContext. So every constantexpr that has the same input ends up being the same object. Do we want that behavior do we need each freeze to be distinct?

Nov 5 2019, 11:56 PM · Restricted Project
aqjune added a comment to D29011: [IR] Add Freeze instruction.

Sorry to come to this late, but does it really make sense for Freeze to be inherited from UnaryOperator? UnaryOperator in my mind is like BinaryOperator which is for arithmetic operations. Freeze is different. The fact that it made sense to add a FreezeOperator hints at that. Should we instead just have a FreezeInst separate from UnaryOperator instead of FreezeOperator?

Nov 5 2019, 7:50 PM · Restricted Project

Nov 4 2019

aqjune committed rG92ef101da91d: [IR] Remove switch's default block that causes clang 8 raise error (authored by aqjune).
[IR] Remove switch's default block that causes clang 8 raise error
Nov 4 2019, 11:35 PM
aqjune committed rG58acbce3def6: [IR] Add Freeze instruction (authored by aqjune).
[IR] Add Freeze instruction
Nov 4 2019, 11:00 PM
aqjune closed D29011: [IR] Add Freeze instruction.
Nov 4 2019, 11:00 PM · Restricted Project
aqjune committed rG31be9f3f7dee: Fix clone_constant_impl to correctly deal with null pointers (authored by aqjune).
Fix clone_constant_impl to correctly deal with null pointers
Nov 4 2019, 8:55 PM
aqjune closed D68928: Fix clone_constant_impl to correctly deal with null pointers.
Nov 4 2019, 8:55 PM · Restricted Project

Oct 27 2019

aqjune added a comment to D29014: [SelDag][MIR] Add FREEZE.

I was looking through MachineInstr's optimizations to recheck validity of using IMPLICIT_DEF, and found that it caused problems at two cases.

Oct 27 2019, 12:35 PM · Restricted Project

Oct 21 2019

aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.
  • Remove DAGTypeLegalizer::PromoteIntOp_FREEZE, DAGTypeLegalizer::ExpandIntOp_FREEZE as they are never called
  • Add cost model of freeze
  • Add vector legalization test to freeze-legalize.ll
Oct 21 2019, 1:07 AM · Restricted Project
aqjune added inline comments to D29014: [SelDag][MIR] Add FREEZE.
Oct 21 2019, 1:07 AM · Restricted Project
aqjune updated the diff for D29011: [IR] Add Freeze instruction.

Sorry, I've been busy recently.

Oct 21 2019, 12:20 AM · Restricted Project

Oct 19 2019

aqjune added a comment to D68928: Fix clone_constant_impl to correctly deal with null pointers.

I have no permission to land this patch - what is the best way for the next step?

Oct 19 2019, 8:04 PM · Restricted Project

Oct 16 2019

aqjune added a comment to D68342: [Analysis] Don't assume that unsigned overflow can't happen in EmitGEPOffset (PR42699).

I agree that the size of a block should not be larger than the half of memory size.

Oct 16 2019, 7:23 PM · Restricted Project

Oct 14 2019

aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.
  • Support floating points, pointers, aggregate types, add tests for those types
Oct 14 2019, 8:06 AM · Restricted Project

Oct 13 2019

aqjune created D68928: Fix clone_constant_impl to correctly deal with null pointers.
Oct 13 2019, 9:06 AM · Restricted Project
aqjune updated the diff for D29011: [IR] Add Freeze instruction.
  • Use FreezeOperator inside Freeze_match
Oct 13 2019, 4:26 AM · Restricted Project
aqjune added inline comments to D29011: [IR] Add Freeze instruction.
Oct 13 2019, 1:24 AM · Restricted Project
aqjune updated the diff for D29011: [IR] Add Freeze instruction.
  • Rebase
  • Add more tests to freeze.ll
  • Define FreezeOperator
Oct 13 2019, 1:15 AM · Restricted Project

Oct 12 2019

aqjune added a comment to D29011: [IR] Add Freeze instruction.

Should you add llvm::Freeze here by inheriting from UnaryOperator to make isa<Freeze>(Op) possible?

Oct 12 2019, 10:01 PM · Restricted Project
aqjune updated the diff for D29011: [IR] Add Freeze instruction.
  • Support freeze constexpr
  • Make freeze's type checking consistent with LangRef.
Oct 12 2019, 8:28 AM · Restricted Project

Oct 7 2019

aqjune added a comment to D29011: [IR] Add Freeze instruction.

should there be a constantexpr freeze

Oct 7 2019, 4:25 AM · Restricted Project
aqjune updated the diff for D29011: [IR] Add Freeze instruction.
Oct 7 2019, 2:47 AM · Restricted Project
aqjune added a comment to D29011: [IR] Add Freeze instruction.

Updated the patch so UnaryOperator is used for Instruction::Freeze op.
Currently I see an error from Phabricator while uploading a new diff:

Unhandled Exception ("PhabricatorFileUploadException")	
Unable to write file: failed to write to temporary directory.

I'll retry uploading it later.

Oct 7 2019, 2:26 AM · Restricted Project

Aug 26 2019

aqjune updated the diff for D29014: [SelDag][MIR] Add FREEZE.

Rebase to trunk@369887 (August 26th, 2019)

Aug 26 2019, 10:21 AM · Restricted Project
aqjune updated the diff for D29013: Add InstCombine/InstructionSimplify support for Freeze Instruction.

Rebase to trunk@369887 (August 26th, 2019)

Aug 26 2019, 10:20 AM · Restricted Project
aqjune updated the diff for D29011: [IR] Add Freeze instruction.

Rebase to trunk@369887 (August 26th, 2019)

Aug 26 2019, 10:13 AM · Restricted Project

Jul 22 2019

aqjune updated the diff for D59349: Let CorrelatedValuePropagation preserve LazyValueInfo.

Sorry, I was pretty busy last week.
@xbolva00 Rebased

Jul 22 2019, 9:24 AM · Restricted Project

Jul 14 2019

aqjune added inline comments to D64451: [PoisonChecking] Validate inbounds annotation on getelementptr where possible.
Jul 14 2019, 1:34 PM · Restricted Project

Jul 4 2019

aqjune added inline comments to D64215: Add a transform pass to make the executable semantics of poison explicit in the IR.
Jul 4 2019, 5:10 PM · Restricted Project

Jun 9 2019

aqjune added inline comments to D63044: [LangRef] Clarify poison semantics.
Jun 9 2019, 1:55 PM · Restricted Project

May 8 2019

aqjune added a comment to D60047: [CaptureTracking] Don't let comparisons against null escape inbounds pointers.

One mode of reasoning that could invalidate this example is that p *could have been* something other than 2^64-4 which would invoke UB. This UB would both let us pretend that foo does not escape p, and also print 2^64-4 even though p was not 2^64-4 in the execution we chose. This seems a bit subtle though, and I'm not entirely sure this is sound reasoning.

May 8 2019, 10:26 AM · Restricted Project
aqjune added inline comments to D59065: Add ptrmask intrinsic.
May 8 2019, 9:25 AM · Restricted Project
aqjune added inline comments to D61669: [ValueTracking] Look through ptrmask intrinsics during getUnderlyingObject..
May 8 2019, 9:15 AM · Restricted Project

Apr 1 2019

aqjune added a comment to D59065: Add ptrmask intrinsic.

In the example, the original pointer (%addr = load %struct.zot*, %struct.zot** %loc, align 8) is not dereference directly and the use case I am looking at is tagged pointers, where the inttoptr(and(ptrtoint(), C) roundtrip is required to get a valid pointer. So the original pointer might not be dereferenceable directly, but logically (ignoring the bits irrelevant for the pointer value) it should still point to the same object. Does that make sense to you?

Apr 1 2019, 2:38 AM · Restricted Project