Page MenuHomePhabricator

DianQK (DianQK)
User

Projects

User does not belong to any projects.

User Details

User Since
May 10 2021, 10:55 PM (96 w, 6 d)

Recent Activity

Yesterday

DianQK added a reverting change for rGb6a0be8ce311: [SimplifyCFG] Check if the return instruction causes undefined behavior: rG6505b9d049e5: Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior".
Sun, Mar 19, 3:43 PM · Restricted Project, Restricted Project
DianQK committed rG6505b9d049e5: Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior" (authored by DianQK).
Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior"
Sun, Mar 19, 3:43 PM · Restricted Project, Restricted Project
DianQK added a reverting change for rGf890f010f6a7: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`: rGc6e54c7fec6e: Revert "[SimplifyCFG] Improve the precision of `PtrValueMayBeModified`".
Sun, Mar 19, 3:43 PM · Restricted Project, Restricted Project
DianQK committed rGc6e54c7fec6e: Revert "[SimplifyCFG] Improve the precision of `PtrValueMayBeModified`" (authored by DianQK).
Revert "[SimplifyCFG] Improve the precision of `PtrValueMayBeModified`"
Sun, Mar 19, 3:43 PM · Restricted Project, Restricted Project
DianQK added a reverting change for D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior: rG6505b9d049e5: Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior".
Sun, Mar 19, 3:43 PM · Restricted Project, Restricted Project
DianQK added a reverting change for D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`: rGc6e54c7fec6e: Revert "[SimplifyCFG] Improve the precision of `PtrValueMayBeModified`".
Sun, Mar 19, 3:42 PM · Restricted Project, Restricted Project
DianQK updated the summary of D146379: [libc++] These throwing allocation functions shouldn't return null..
Sun, Mar 19, 8:03 AM · Restricted Project, Restricted Project
DianQK added a reverting change for D20677: Make it possible to build a -fno-exceptions libc++abi variant.: D146379: [libc++] These throwing allocation functions shouldn't return null..
Sun, Mar 19, 8:01 AM
DianQK updated the summary of D146379: [libc++] These throwing allocation functions shouldn't return null..
Sun, Mar 19, 8:01 AM · Restricted Project, Restricted Project
DianQK updated the summary of D146379: [libc++] These throwing allocation functions shouldn't return null..
Sun, Mar 19, 7:18 AM · Restricted Project, Restricted Project
DianQK updated the summary of D146379: [libc++] These throwing allocation functions shouldn't return null..
Sun, Mar 19, 7:17 AM · Restricted Project, Restricted Project
DianQK added a reviewer for D146379: [libc++] These throwing allocation functions shouldn't return null.: rmaprath.
Sun, Mar 19, 6:58 AM · Restricted Project, Restricted Project
DianQK added a comment to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

@Mordante Please check patch D146379. Some test cases fail, but I tried to explain this UB.

Sun, Mar 19, 6:29 AM · Restricted Project, Restricted Project
DianQK added reviewers for D146379: [libc++] These throwing allocation functions shouldn't return null.: xbolva00, Mordante.
Sun, Mar 19, 6:26 AM · Restricted Project, Restricted Project
DianQK updated the summary of D146379: [libc++] These throwing allocation functions shouldn't return null..
Sun, Mar 19, 5:55 AM · Restricted Project, Restricted Project
DianQK added a comment to D146379: [libc++] These throwing allocation functions shouldn't return null..
Sun, Mar 19, 5:49 AM · Restricted Project, Restricted Project
DianQK requested review of D146379: [libc++] These throwing allocation functions shouldn't return null..
Sun, Mar 19, 5:48 AM · Restricted Project, Restricted Project

Sat, Mar 18

DianQK added a comment to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

If you are not so sure, you are free to revert my commit. ^_^

Sat, Mar 18, 7:15 AM · Restricted Project, Restricted Project
DianQK added a comment to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Would it be possible to fix this issue quickly, if not can you revert this patch?

Sat, Mar 18, 7:07 AM · Restricted Project, Restricted Project

Fri, Mar 17

DianQK updated the diff for D145293: [GlobalOpt] Don't replace the aliasee if it has other references..

ping?

Fri, Mar 17, 3:47 PM · Restricted Project, Restricted Project

Wed, Mar 8

DianQK updated the diff for D145293: [GlobalOpt] Don't replace the aliasee if it has other references..

Add comments

Wed, Mar 8, 6:16 AM · Restricted Project, Restricted Project
DianQK added a comment to D145293: [GlobalOpt] Don't replace the aliasee if it has other references..

To be honest, I would rather we look at removing OptimizeGlobalAliases altogether. As I explained in D65118, these kinds of trivial alias "optimizations" on their own can be more harmful than helpful.

Wed, Mar 8, 6:09 AM · Restricted Project, Restricted Project
DianQK updated the diff for D145293: [GlobalOpt] Don't replace the aliasee if it has other references..

How does rustc use llvm.compiler.used or llvm.uses?

Wed, Mar 8, 6:06 AM · Restricted Project, Restricted Project

Sat, Mar 4

DianQK updated the summary of D145293: [GlobalOpt] Don't replace the aliasee if it has other references..
Sat, Mar 4, 3:53 AM · Restricted Project, Restricted Project
DianQK added inline comments to D145293: [GlobalOpt] Don't replace the aliasee if it has other references..
Sat, Mar 4, 3:44 AM · Restricted Project, Restricted Project
DianQK updated the diff for D145293: [GlobalOpt] Don't replace the aliasee if it has other references..

Fix test.

Sat, Mar 4, 3:42 AM · Restricted Project, Restricted Project

Fri, Mar 3

DianQK updated the summary of D145293: [GlobalOpt] Don't replace the aliasee if it has other references..
Fri, Mar 3, 9:40 PM · Restricted Project, Restricted Project
DianQK retitled D145293: [GlobalOpt] Don't replace the aliasee if it has other references. from [GlobalOpt] Don't replace the aliasee if it has other references to [GlobalOpt] Don't replace the aliasee if it has other references..
Fri, Mar 3, 9:30 PM · Restricted Project, Restricted Project
DianQK requested review of D145293: [GlobalOpt] Don't replace the aliasee if it has other references..
Fri, Mar 3, 9:25 PM · Restricted Project, Restricted Project

Sat, Feb 25

DianQK committed rGf890f010f6a7: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified` (authored by DianQK).
[SimplifyCFG] Improve the precision of `PtrValueMayBeModified`
Sat, Feb 25, 3:44 AM · Restricted Project, Restricted Project
DianQK closed D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.
Sat, Feb 25, 3:44 AM · Restricted Project, Restricted Project
DianQK added a comment to D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.

Precommit tests?

Otherwise looks good.

Sat, Feb 25, 2:31 AM · Restricted Project, Restricted Project
DianQK updated the diff for D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.

Fixed typo

Sat, Feb 25, 2:27 AM · Restricted Project, Restricted Project
DianQK added a comment to D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.

Thank you very much for your review!

Sat, Feb 25, 2:15 AM · Restricted Project, Restricted Project
DianQK updated the diff for D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.

Add some tests with inbounds + null_pointer_is_valid.

Sat, Feb 25, 1:24 AM · Restricted Project, Restricted Project

Fri, Feb 24

DianQK added inline comments to D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.
Fri, Feb 24, 9:41 PM · Restricted Project, Restricted Project
DianQK updated the diff for D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.

Simplify the branch logic

Fri, Feb 24, 9:37 PM · Restricted Project, Restricted Project
DianQK added inline comments to D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.
Fri, Feb 24, 4:41 AM · Restricted Project, Restricted Project

Thu, Feb 23

DianQK added inline comments to D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.
Thu, Feb 23, 6:54 AM · Restricted Project, Restricted Project
DianQK added inline comments to D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.
Thu, Feb 23, 6:53 AM · Restricted Project, Restricted Project
DianQK updated the diff for D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.

Add NullPointerIsDefined check and fn_noundef_arg case

Thu, Feb 23, 6:27 AM · Restricted Project, Restricted Project

Wed, Feb 22

DianQK updated the summary of D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.
Wed, Feb 22, 7:10 AM · Restricted Project, Restricted Project
DianQK updated the summary of D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.
Wed, Feb 22, 7:07 AM · Restricted Project, Restricted Project
DianQK requested review of D144563: [SimplifyCFG] Improve the precision of `PtrValueMayBeModified`.
Wed, Feb 22, 7:04 AM · Restricted Project, Restricted Project

Tue, Feb 21

DianQK committed rGb6a0be8ce311: [SimplifyCFG] Check if the return instruction causes undefined behavior (authored by DianQK).
[SimplifyCFG] Check if the return instruction causes undefined behavior
Tue, Feb 21, 5:44 AM · Restricted Project, Restricted Project
DianQK closed D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Tue, Feb 21, 5:44 AM · Restricted Project, Restricted Project
DianQK added inline comments to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Tue, Feb 21, 5:08 AM · Restricted Project, Restricted Project
DianQK added inline comments to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Tue, Feb 21, 1:06 AM · Restricted Project, Restricted Project
DianQK added inline comments to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Tue, Feb 21, 12:41 AM · Restricted Project, Restricted Project

Mon, Feb 20

DianQK added inline comments to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Mon, Feb 20, 5:31 PM · Restricted Project, Restricted Project
DianQK added inline comments to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Mon, Feb 20, 7:47 AM · Restricted Project, Restricted Project

Sun, Feb 19

DianQK added a reverting change for rGb6eed9a82e0c: [SimplifyCFG] Check if the return instruction causes undefined behavior: rG1235ed913356: Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior".
Sun, Feb 19, 5:09 AM · Restricted Project, Restricted Project
DianQK committed rG1235ed913356: Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior" (authored by DianQK).
Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior"
Sun, Feb 19, 5:09 AM · Restricted Project, Restricted Project
DianQK added a reverting change for D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior: rG1235ed913356: Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior".
Sun, Feb 19, 5:08 AM · Restricted Project, Restricted Project
DianQK reopened D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Sad, it still looks like it failed.

Sun, Feb 19, 5:03 AM · Restricted Project, Restricted Project
DianQK committed rGb6eed9a82e0c: [SimplifyCFG] Check if the return instruction causes undefined behavior (authored by DianQK).
[SimplifyCFG] Check if the return instruction causes undefined behavior
Sun, Feb 19, 3:44 AM · Restricted Project, Restricted Project
DianQK closed D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Sun, Feb 19, 3:44 AM · Restricted Project, Restricted Project
DianQK added a comment to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Another thing I'm curious about is why all the gep zero have been removed in the llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll file at the 8979ae42769e529b0f6fce3268492ffb49bd54b9.

Sun, Feb 19, 2:11 AM · Restricted Project, Restricted Project
DianQK added a comment to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

According to https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild, I can reproduce the issue locally. But this build is taking too long, and I'm still verifying the sanitizer checks after the fix.

Sun, Feb 19, 2:03 AM · Restricted Project, Restricted Project
DianQK updated the diff for D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

check !PtrValueMayBeModified.

Sun, Feb 19, 1:49 AM · Restricted Project, Restricted Project

Feb 18 2023

Herald added a project to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument: Restricted Project.
Feb 18 2023, 6:03 PM · Restricted Project, Restricted Project
DianQK committed rG7be55b007698: [SimplifyCFG] Check if the return instruction causes undefined behavior (authored by DianQK).
[SimplifyCFG] Check if the return instruction causes undefined behavior
Feb 18 2023, 7:34 AM · Restricted Project, Restricted Project
DianQK closed D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Feb 18 2023, 7:33 AM · Restricted Project, Restricted Project
DianQK added a comment to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Thank you for your review and answer. I have commit access. After https://reviews.llvm.org/B214570 succeeds, I will rebase the commit and run ninja check-all once locally to confirm it is correct.

Feb 18 2023, 6:21 AM · Restricted Project, Restricted Project
DianQK updated the diff for D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Add the use case with only nonnull.

Feb 18 2023, 6:07 AM · Restricted Project, Restricted Project
DianQK added inline comments to D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Feb 18 2023, 6:04 AM · Restricted Project, Restricted Project
DianQK updated the diff for D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Fix typo.

Feb 18 2023, 5:59 AM · Restricted Project, Restricted Project
DianQK updated the diff for D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Add nonnull and noundef.

Feb 18 2023, 5:56 AM · Restricted Project, Restricted Project

Feb 17 2023

DianQK updated the diff for D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Fix test cases

Feb 17 2023, 11:14 PM · Restricted Project, Restricted Project
DianQK updated the diff for D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.

Fix the undefined ptr case

Feb 17 2023, 8:10 PM · Restricted Project, Restricted Project
DianQK updated the summary of D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Feb 17 2023, 7:15 PM · Restricted Project, Restricted Project
DianQK updated the summary of D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Feb 17 2023, 6:59 PM · Restricted Project, Restricted Project
DianQK requested review of D144319: [SimplifyCFG] Check if the return instruction causes undefined behavior.
Feb 17 2023, 6:56 PM · Restricted Project, Restricted Project

Oct 22 2022

DianQK committed rGd20e4a1d68aa: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC (authored by DianQK).
[DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC
Oct 22 2022, 6:26 AM · Restricted Project, Restricted Project
DianQK closed D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.
Oct 22 2022, 6:26 AM · debug-info, Restricted Project, Restricted Project
DianQK updated the diff for D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.

add *Impl

Oct 22 2022, 6:21 AM · debug-info, Restricted Project, Restricted Project
DianQK added a comment to D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.

Thank you very much for your help!

Oct 22 2022, 6:20 AM · debug-info, Restricted Project, Restricted Project

Oct 19 2022

DianQK added inline comments to D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.
Oct 19 2022, 7:12 AM · debug-info, Restricted Project, Restricted Project

Oct 18 2022

DianQK updated the diff for D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.

Use auto

Oct 18 2022, 3:44 PM · debug-info, Restricted Project, Restricted Project
DianQK added a comment to D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.

Mark something as completed.

Oct 18 2022, 7:10 AM · debug-info, Restricted Project, Restricted Project
DianQK updated the diff for D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.

Remove ContextCU as an argument

Oct 18 2022, 7:07 AM · debug-info, Restricted Project, Restricted Project

Oct 17 2022

DianQK added inline comments to D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.
Oct 17 2022, 7:35 PM · debug-info, Restricted Project, Restricted Project
DianQK updated the summary of D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.
Oct 17 2022, 6:57 PM · debug-info, Restricted Project, Restricted Project
DianQK updated the diff for D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.

Add more detailed description for test

Oct 17 2022, 8:36 AM · debug-info, Restricted Project, Restricted Project
DianQK added a comment to D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.

If we wanted to fix this whole class of errors, maybe it's time we moved most of the DIE creation operations back to DwarfDebug - and any unit-specific operations would then have to explicitly look up the right unit from the DIE before they could be used. This would reduce the chance of accidentally using the wrong unit? (it'd cause more unit lookups - which should only be walking up the DIE chain. - if we make sure every DIE is added to its parent early enough, which seems plausible)

Oct 17 2022, 8:22 AM · debug-info, Restricted Project, Restricted Project
DianQK updated the diff for D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.

Update code

Oct 17 2022, 7:48 AM · debug-info, Restricted Project, Restricted Project

Oct 16 2022

DianQK updated the summary of D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.
Oct 16 2022, 8:29 AM · debug-info, Restricted Project, Restricted Project
DianQK abandoned D135267: [DWARF] Share across CUs only when order free.
Oct 16 2022, 8:02 AM · debug-info, Restricted Project, Restricted Project
DianQK added a comment to D135267: [DWARF] Share across CUs only when order free.

There seems to be a lot of complexity to consider here, would adding an option to control DINode can be shareable be a good suggestion?
Pseudo-code:

bool DwarfUnit::isShareableAcrossCUs(const DINode *D) const {
  ...
  return ((isa<DIType>(D) && !option("disable-die-share-across-cus"))||
          (isa<DISubprogram>(D) && !cast<DISubprogram>(D)->isDefinition())) &&
         !DD->generateTypeUnits();
}

I'm not ready to understand what solutions might be appropriate as I'm still trying to understand the problem and why it arises for Swift but not C++ - sorry I haven't had enough time to try to get the context clearly in my head.

I don't have a Swift compiler, and don't really know Swift (so I'm not sure what Foo: Hashable means - in C++ that would be derivation, and Hashable wouldn't have any reference to Foo (only the other way around, Foo would reference Hashable) - could you include the LLVM IR for this small example so I could take a look?

struct Foo: Equatable, Hashable {}

Is a definition of a struct with the name Foo that conforms to the protocols Equatable and Hashable. Protocols in Swift are somewhat similar in spirit to Concepts in C++. Defining Foo to conform to Equatable to somewhat similar to declaring bool operator==(const Foo &) = default; in C++. Because of the protocol conformance the compiler must emit a witness table (~ vtable) defining how to call the methods required by Equatable on a Foo object.

Oct 16 2022, 8:02 AM · debug-info, Restricted Project, Restricted Project
DianQK added reviewers for D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC: dblaikie, aprantl, ellis, JDevlieghere.
Oct 16 2022, 7:52 AM · debug-info, Restricted Project, Restricted Project
DianQK requested review of D136039: [DebugInfo] Fix potential CU mismatch for attachRangesOrLowHighPC.
Oct 16 2022, 7:51 AM · debug-info, Restricted Project, Restricted Project

Oct 7 2022

DianQK added a comment to D135267: [DWARF] Share across CUs only when order free.

There seems to be a lot of complexity to consider here, would adding an option to control DINode can be shareable be a good suggestion?
Pseudo-code:

bool DwarfUnit::isShareableAcrossCUs(const DINode *D) const {
  ...
  return ((isa<DIType>(D) && !option("disable-die-share-across-cus"))||
          (isa<DISubprogram>(D) && !cast<DISubprogram>(D)->isDefinition())) &&
         !DD->generateTypeUnits();
}
Oct 7 2022, 7:44 AM · debug-info, Restricted Project, Restricted Project
DianQK added a comment to D135267: [DWARF] Share across CUs only when order free.

@dblaikie
Following your case, I created one swift example.

Oct 7 2022, 7:37 AM · debug-info, Restricted Project, Restricted Project

Oct 5 2022

DianQK added a comment to D135267: [DWARF] Share across CUs only when order free.

Sorry, I'm not really understanding most of this - could you explain further what you mean by "successor" nodes and what "order free" means in this context?

Oct 5 2022, 11:19 PM · debug-info, Restricted Project, Restricted Project
DianQK added reviewers for D135267: [DWARF] Share across CUs only when order free: dblaikie, aprantl, vsk, probinson, jmorse, jinlin.
Oct 5 2022, 7:13 AM · debug-info, Restricted Project, Restricted Project
DianQK updated the summary of D135267: [DWARF] Share across CUs only when order free.
Oct 5 2022, 7:10 AM · debug-info, Restricted Project, Restricted Project
DianQK requested review of D135267: [DWARF] Share across CUs only when order free.
Oct 5 2022, 7:07 AM · debug-info, Restricted Project, Restricted Project

Nov 14 2021

DianQK updated the diff for D112911: Fix the side effect of outlined function when the register is implicit use and implicit-def in the same instruction..

rebase the patch to make sure everything is based on an up-to-date origin/main.

Nov 14 2021, 3:22 AM · Restricted Project

Nov 13 2021

DianQK added a comment to D112911: Fix the side effect of outlined function when the register is implicit use and implicit-def in the same instruction..

Many thanks for your review @jinlin. I don’t have commit access, can you land this patch for me? Please use “DianQK dianqk@icloud.com” to commit the change.

Nov 13 2021, 9:01 PM · Restricted Project
DianQK updated the diff for D112911: Fix the side effect of outlined function when the register is implicit use and implicit-def in the same instruction..

update machine-outliner-side-effect-2.mir

Nov 13 2021, 5:53 PM · Restricted Project