Page MenuHomePhabricator

yuyichao (Yichao Yu)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 23 2016, 8:31 AM (243 w, 12 h)

Recent Activity

Thu, Sep 3

yuyichao added a comment to D84031: Clear NewGEPBases after finish using them in CodeGenPrep pass.

Does run-twice free the module? I’ll have to look for the repro again but I was only able to observe a crash when the module is free’d and it doesn’t even require running the pass again...

Thu, Sep 3, 10:27 AM · Restricted Project

Mon, Aug 31

yuyichao abandoned D85598: Do not strip metadata from load of constant memory.

Actually I don't think this is correct so I'm closing this. It should actually be valid to only mark a load as constant even if it is only true behind a branch and in such case moving the load out of the branch should indeed have the metadata stripped out.

Mon, Aug 31, 7:50 PM · Restricted Project
yuyichao added a comment to D86837: Allow specifying AA info when constructing certain libcalls.

Other frontends could. I'm adding this because TBAA can already use this but right now if the frontend emits them, it can still be stripped out by instcombine.

Mon, Aug 31, 7:42 PM · Restricted Project

Sat, Aug 29

yuyichao updated the diff for D86837: Allow specifying AA info when constructing certain libcalls.

Propagate alias info to load and store instructions in additional to function calls.

Sat, Aug 29, 2:57 PM · Restricted Project
yuyichao added a comment to D86837: Allow specifying AA info when constructing certain libcalls.

I'm currently running the existing tests to find regressions... I'll probably just add tbaa to most/all of the existing tests and it'll probably take a while...

Sat, Aug 29, 8:32 AM · Restricted Project
yuyichao requested review of D86837: Allow specifying AA info when constructing certain libcalls.
Sat, Aug 29, 7:46 AM · Restricted Project

Aug 8 2020

yuyichao requested review of D85598: Do not strip metadata from load of constant memory.
Aug 8 2020, 11:42 PM · Restricted Project

Jul 22 2020

yuyichao abandoned D83800: Support PC relative relocation on AArch64 and PPC64 in RelocationResolver.

Seems that this wasn't automatically closed by the two commits so I'm closing manually...

Jul 22 2020, 9:33 AM · Restricted Project

Jul 17 2020

yuyichao added a comment to D83800: Support PC relative relocation on AArch64 and PPC64 in RelocationResolver.

OK, so I guess at least R_X86_64_PC32 should be fixed too. If you don't mind, feel free to commit an updated version of this. I can also update this later next week after I'm free again, though, as I said, I have a hard time constructing an IR test for this....

Jul 17 2020, 10:56 PM · Restricted Project
yuyichao added a comment to D83800: Support PC relative relocation on AArch64 and PPC64 in RelocationResolver.

Is there a difference between R_PPC64_REL32 vs R_AARCH64_PREL32 vs R_X86_64_PC32? I didn't add mask because the x86 one doesn't have it.

Jul 17 2020, 11:50 AM · Restricted Project
Herald added a project to D84031: Clear NewGEPBases after finish using them in CodeGenPrep pass: Restricted Project.
Jul 17 2020, 8:16 AM · Restricted Project

Jul 14 2020

Herald added a project to D83800: Support PC relative relocation on AArch64 and PPC64 in RelocationResolver: Restricted Project.
Jul 14 2020, 11:24 AM · Restricted Project

Nov 2 2017

yuyichao committed rL317201: Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on….
Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on…
Nov 2 2017, 5:19 AM
yuyichao closed D39434: Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on call site with operand bundle by committing rL317201: Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on….
Nov 2 2017, 5:19 AM

Oct 30 2017

yuyichao updated the diff for D39434: Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on call site with operand bundle.

Updated the test to match the format after autoupgrade.

Oct 30 2017, 5:42 PM
yuyichao added a comment to D39434: Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on call site with operand bundle.

Actually I just realized that the last test is referring to auto upgraded attribute numbers, I'll check if I can directly use new attribute syntax and have more predictable numbers (or do regex matching instead)

Oct 30 2017, 3:05 PM
yuyichao created D39434: Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on call site with operand bundle.
Oct 30 2017, 2:10 PM

Oct 26 2017

yuyichao committed rL316679: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM….
Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM…
Oct 26 2017, 10:37 AM
yuyichao closed D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer by committing rL316679: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM….
Oct 26 2017, 10:37 AM
yuyichao abandoned D39319: Set contract flag when setting unsafe algebra flag.

Do you need this right away, or can we wait for that change to proceed?

Oct 26 2017, 7:23 AM

Oct 25 2017

yuyichao created D39319: Set contract flag when setting unsafe algebra flag.
Oct 25 2017, 10:05 PM
yuyichao updated the diff for D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

Thanks for the review. Test removed and patch updated. I'll merge some time tomorrow.

Oct 25 2017, 8:10 AM

Oct 24 2017

yuyichao added a comment to D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

Who should make the decision of whether the test should be included or if it's needed? Or how much longer do I still need to wait before merging either with or without the test?

Oct 24 2017, 9:27 AM

Oct 22 2017

yuyichao committed rL316302: Fix invalid ptrtoint in InstCombine.
Fix invalid ptrtoint in InstCombine
Oct 22 2017, 1:31 PM
yuyichao closed D34335: Fix invalid ptrtoint in InstCombine by committing rL316302: Fix invalid ptrtoint in InstCombine.
Oct 22 2017, 1:31 PM
yuyichao added a comment to D34335: Fix invalid ptrtoint in InstCombine.

Thanks for the review.

Oct 22 2017, 1:31 PM

Oct 20 2017

yuyichao added a comment to D34335: Fix invalid ptrtoint in InstCombine.

Ping.

Oct 20 2017, 6:08 AM

Oct 17 2017

yuyichao committed rL315991: Fix implicit null check with negative offset.
Fix implicit null check with negative offset
Oct 17 2017, 4:47 AM
yuyichao closed D38925: Fix implicit null check with negative offset by committing rL315991: Fix implicit null check with negative offset.
Oct 17 2017, 4:47 AM
yuyichao committed rL315990: Fix `FaultMaps` crash when the out streamer is reused.
Fix `FaultMaps` crash when the out streamer is reused
Oct 17 2017, 4:44 AM
yuyichao closed D38924: Fix `FaultMaps` crash when the out streamer is reused by committing rL315990: Fix `FaultMaps` crash when the out streamer is reused.
Oct 17 2017, 4:44 AM

Oct 16 2017

yuyichao added a comment to D38925: Fix implicit null check with negative offset.

Thanks for review.

Oct 16 2017, 6:55 AM
yuyichao added a comment to D38924: Fix `FaultMaps` crash when the out streamer is reused.

But the point that SM does not do that makes me thinking that it might be a separate patch.

Oct 16 2017, 6:53 AM
yuyichao added a comment to D34335: Fix invalid ptrtoint in InstCombine.

Ping.

Oct 16 2017, 6:48 AM

Oct 14 2017

yuyichao added a comment to D38924: Fix `FaultMaps` crash when the out streamer is reused.

Thanks for the review.

Oct 14 2017, 5:39 PM
yuyichao added inline comments to D38924: Fix `FaultMaps` crash when the out streamer is reused.
Oct 14 2017, 4:57 PM
yuyichao created D38925: Fix implicit null check with negative offset.
Oct 14 2017, 4:27 PM
yuyichao created D38924: Fix `FaultMaps` crash when the out streamer is reused.
Oct 14 2017, 2:41 PM
yuyichao updated the diff for D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

I'm hoping for input from a code owner to see whether they think introducing a UnitTest is worth it.

Oct 14 2017, 2:30 PM

Oct 12 2017

yuyichao added a comment to D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

Personally I would be happy with the change without a heavyweight test.

Oct 12 2017, 2:00 PM

Oct 11 2017

yuyichao updated the diff for D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

I put together a really simple test based on the only other occurance of streamer in the tests (from DWARF tests). It reliably crashes without the patch and doesn't with the patch. This is about as much as what I can possibly come up with. A similar test can be added for AArch64 but won't be testing anything. I have no idea what result I should test.

Oct 11 2017, 8:10 PM

Oct 9 2017

yuyichao updated the diff for D34335: Fix invalid ptrtoint in InstCombine.

I've found another failure in instcombine (see last test) so it seems to me that CastInst::isBitOrNoopPointerCastable is the right place for this logic. This also answers my second question since the cast between address spaces is already handled by isBitCastable

Oct 9 2017, 7:38 PM

Oct 5 2017

yuyichao added a comment to D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

we might want at least an assert here.

Oct 5 2017, 11:45 AM
yuyichao added a comment to D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

My guess is that the only way to plausibly test this may be to add a new unittest maybe under unittest/MC?

Oct 5 2017, 11:43 AM
yuyichao added a comment to D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

One thing I'm a bit puzzled about in D30724 is that line 467 (in review) looks like it will move a LastEMSInfo unique_ptr<ElfMappingSymbolInfo> that points to nullptr on first call as the class member on line 686 isn't initialized. This may or may not be important and I may have missed something in the code.

Oct 5 2017, 11:29 AM
yuyichao added a comment to D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.

Why do you need to call this here and in reset()?

Oct 5 2017, 9:10 AM
yuyichao created D38588: Clear LastMappingSymbols and LastEMS(Info) when resetting the ARM(AArch64)ELFStreamer.
Oct 5 2017, 8:27 AM

Sep 27 2017

yuyichao updated the diff for D34335: Fix invalid ptrtoint in InstCombine.

There was no comment since the only comment I can add would be repeating the condition itself. I do like to add comment about why this is needed or if this is the only way we can fix the issue but that's also what I'm not sure about (quesiton 1 in my review comment). Anyway, I added a comment to repeat the condition for now.

Sep 27 2017, 7:22 AM

Sep 26 2017

yuyichao added a comment to D34335: Fix invalid ptrtoint in InstCombine.

Ping?

Sep 26 2017, 8:20 PM

Jul 29 2017

yuyichao updated the diff for D34335: Fix invalid ptrtoint in InstCombine.

Use AccessTy and added a test to make sure that the case where we load from an non-integral point is still optimized.

Jul 29 2017, 2:47 PM
yuyichao updated the diff for D34335: Fix invalid ptrtoint in InstCombine.
Jul 29 2017, 2:43 PM

Jun 21 2017

yuyichao added a comment to D34409: Use 64bit jump table with large code model on 64bit.

I see the non-arch specific property as the good part since currently everything other than PPC claims to support large model with PIC and just generate wrong code. If a fallback that's always implementable and correct is defined, the only arch-specific changes needed will be for efficiency and not for correctness.

Jun 21 2017, 8:12 AM
yuyichao added a comment to D34409: Use 64bit jump table with large code model on 64bit.

If the jump table is writable

Jun 21 2017, 5:10 AM

Jun 20 2017

yuyichao added a comment to D34409: Use 64bit jump table with large code model on 64bit.

Why would a writable jump table help?

Jun 20 2017, 4:17 PM
yuyichao added a comment to D34409: Use 64bit jump table with large code model on 64bit.

Who is we? I'm moderately sure that is not the case in general, since it would create less efficient code.

Jun 20 2017, 4:16 PM
yuyichao updated the diff for D34409: Use 64bit jump table with large code model on 64bit.

PPC changes reverted and tests updated. I believe this addresses all the comment so far.

Jun 20 2017, 4:03 PM
yuyichao added a comment to D34409: Use 64bit jump table with large code model on 64bit.

the existing 32-bit offsets are probably fine.

Jun 20 2017, 3:54 PM
yuyichao added a comment to D34409: Use 64bit jump table with large code model on 64bit.

It puts offsets between the BB and a picbase into the jumptable.

Jun 20 2017, 2:27 PM
yuyichao added a comment to D34409: Use 64bit jump table with large code model on 64bit.

I expect something better could be done for PPC, but this is entirely in line with the existing 32-bit code and correctness comes before performance. I pretty strongly object to characterising the patch as "wrong".

Jun 20 2017, 2:20 PM
yuyichao created D34409: Use 64bit jump table with large code model on 64bit.
Jun 20 2017, 9:45 AM

Jun 18 2017

yuyichao created D34335: Fix invalid ptrtoint in InstCombine.
Jun 18 2017, 3:09 PM

Jun 17 2017

yuyichao added a comment to D33110: [CodeGenPrepare] Don't create inttoptr for ni ptrs.

I'm seeing a similar failure caused by the same code even with this patch applied on LLVM 4.0.

Jun 17 2017, 3:12 PM

Jun 15 2017

yuyichao added a comment to D34078: Enable support for floating-point division reductions.

Ping?

Jun 15 2017, 11:36 AM · Restricted Project

Jun 10 2017

yuyichao added a comment to D34078: Enable support for floating-point division reductions.

Oh and this fixes https://bugs.llvm.org/show_bug.cgi?id=33345

Jun 10 2017, 5:55 AM · Restricted Project
yuyichao created D34078: Enable support for floating-point division reductions.
Jun 10 2017, 5:52 AM · Restricted Project

Jan 26 2017

yuyichao committed rL293230: CMake is funky on detecting Intel 17 as GCC compatible..
CMake is funky on detecting Intel 17 as GCC compatible.
Jan 26 2017, 4:01 PM
yuyichao closed D27610: CMake is funky on detecting Intel 17 as GCC compatible. by committing rL293230: CMake is funky on detecting Intel 17 as GCC compatible..
Jan 26 2017, 4:01 PM

Jan 10 2017

yuyichao added a comment to D27629: Fix unwind info relocation with large code model on AArch64.

I would expect an IR test for this,

Jan 10 2017, 3:49 PM · Restricted Project, Restricted Project
yuyichao added a comment to D27629: Fix unwind info relocation with large code model on AArch64.

Except you don't?

Jan 10 2017, 3:14 PM · Restricted Project, Restricted Project
yuyichao added inline comments to D28122: RuntimeDyldELF: implement R_AARCH64_PREL64 reloc.
Jan 10 2017, 2:44 PM
yuyichao updated the diff for D27629: Fix unwind info relocation with large code model on AArch64.

Rebased to only include the code model part....... Hopefully this time someone can comment on the whole PR instead of half at a time ;-p........

Jan 10 2017, 2:37 PM · Restricted Project, Restricted Project
yuyichao added a comment to D27629: Fix unwind info relocation with large code model on AArch64.

...... Looks like the relocation part was implemented in a later pull request https://reviews.llvm.org/D28122 that's already committed.........................

Jan 10 2017, 2:33 PM · Restricted Project, Restricted Project

Jan 5 2017

yuyichao added reviewers for D27629: Fix unwind info relocation with large code model on AArch64: reames, ributzka, echristo, joerg.
Jan 5 2017, 6:29 PM · Restricted Project, Restricted Project
yuyichao added a comment to D27629: Fix unwind info relocation with large code model on AArch64.

(i.e. can both llvm and gnu libunwind handle DW_EH_PE_sdata8)

Jan 5 2017, 6:28 PM · Restricted Project, Restricted Project

Dec 24 2016

yuyichao added a comment to D27629: Fix unwind info relocation with large code model on AArch64.

Sure.

Dec 24 2016, 1:40 PM · Restricted Project, Restricted Project
yuyichao added a comment to D27629: Fix unwind info relocation with large code model on AArch64.

Ping.

Dec 24 2016, 3:57 AM · Restricted Project, Restricted Project

Dec 15 2016

yuyichao updated the diff for D27629: Fix unwind info relocation with large code model on AArch64.

https://reviews.llvm.org/D27609 is accepted and committed. Rebased on top of it and then add tests for the BE binary similar to https://reviews.llvm.org/D27609 .

Dec 15 2016, 3:13 PM · Restricted Project, Restricted Project
yuyichao committed rL289880: Fix R_AARCH64_MOVW_UABS_G3 relocation.
Fix R_AARCH64_MOVW_UABS_G3 relocation
Dec 15 2016, 2:47 PM
yuyichao closed D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation by committing rL289880: Fix R_AARCH64_MOVW_UABS_G3 relocation.
Dec 15 2016, 2:47 PM

Dec 14 2016

yuyichao updated the diff for D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation.

Tests added. Also discovered and had to fix two other bugs since the arch detection was wrong for aarch64_be ELF file....

Dec 14 2016, 7:54 PM
yuyichao added a comment to D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation.

(and add the required tests please)

Dec 14 2016, 5:57 PM
yuyichao added inline comments to D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation.
Dec 14 2016, 4:20 PM
yuyichao added inline comments to D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation.
Dec 14 2016, 4:02 PM
yuyichao added a comment to D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation.

Ping.

Dec 14 2016, 3:47 PM

Dec 13 2016

yuyichao updated the diff for D27629: Fix unwind info relocation with large code model on AArch64.

Use target endian for data relocation. This one actually depends on https://reviews.llvm.org/D27609 now....

Dec 13 2016, 6:25 AM · Restricted Project, Restricted Project
yuyichao updated the diff for D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation.

Use target endian for data relocation.

Dec 13 2016, 6:23 AM
yuyichao added inline comments to D27629: Fix unwind info relocation with large code model on AArch64.
Dec 13 2016, 5:20 AM · Restricted Project, Restricted Project

Dec 11 2016

yuyichao added a comment to D27653: Make check for atomic alignment target dependent.

Ref https://gcc.gnu.org/ml/gcc/2016-11/txt6ZlA_JS27i.txt .

Dec 11 2016, 1:38 PM

Dec 9 2016

yuyichao updated the diff for D27629: Fix unwind info relocation with large code model on AArch64.

Test added.

Dec 9 2016, 1:54 PM · Restricted Project, Restricted Project
yuyichao retitled D27629: Fix unwind info relocation with large code model on AArch64 from to Fix unwind info relocation with large code model on AArch64.
Dec 9 2016, 1:09 PM · Restricted Project, Restricted Project
yuyichao added inline comments to D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation.
Dec 9 2016, 3:59 AM
yuyichao retitled D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation from to Fix R_AARCH64_MOVW_UABS_G3 relocation.
Dec 9 2016, 3:59 AM
yuyichao updated the diff for D27609: Fix R_AARCH64_MOVW_UABS_G3 relocation.

Tests added and endianess issue fixed.

Dec 9 2016, 3:59 AM

Nov 23 2016

yuyichao committed rL287769: Fix doc of `llvm.bitreverse.iN`.
Fix doc of `llvm.bitreverse.iN`
Nov 23 2016, 8:35 AM
yuyichao closed D27047: Fix doc of `llvm.bitreverse.iN` by committing rL287769: Fix doc of `llvm.bitreverse.iN`.
Nov 23 2016, 8:35 AM
yuyichao retitled D27047: Fix doc of `llvm.bitreverse.iN` from to Fix doc of `llvm.bitreverse.iN`.
Nov 23 2016, 7:29 AM

Nov 17 2016

yuyichao committed rL287293: Add an option to disable libedit.
Add an option to disable libedit
Nov 17 2016, 5:35 PM
yuyichao closed D26550: Add an option to disable libedit by committing rL287293: Add an option to disable libedit.
Nov 17 2016, 5:35 PM

Nov 16 2016

yuyichao added a comment to D26550: Add an option to disable libedit.

Ping

Nov 16 2016, 8:43 AM

Nov 11 2016

yuyichao retitled D26550: Add an option to disable libedit from to Add an option to disable libedit.
Nov 11 2016, 8:25 AM