Page MenuHomePhabricator

aemerson (Amara Emerson)
Asian George Costanza

Projects

User does not belong to any projects.

User Details

User Since
Sep 9 2013, 3:45 AM (306 w, 56 m)

The sea was angry that day, my friends - like an old man trying to send back soup in a deli.

Recent Activity

Fri, Jul 19

aemerson accepted D65024: [GlobalISel][AArch64] Contract trivial same-size cross-bank copies into G_STOREs.

Pre-emptive LGTM with the minor changes done.

Fri, Jul 19, 4:18 PM · Restricted Project
aemerson added inline comments to D65024: [GlobalISel][AArch64] Contract trivial same-size cross-bank copies into G_STOREs.
Fri, Jul 19, 3:43 PM · Restricted Project

Thu, Jul 18

aemerson committed rGcf12c7815fed: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and… (authored by aemerson).
[GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and…
Thu, Jul 18, 5:26 PM
aemerson committed rL366516: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and….
[GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and…
Thu, Jul 18, 5:26 PM
aemerson closed D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..
Thu, Jul 18, 5:25 PM · Restricted Project
aemerson added inline comments to D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..
Thu, Jul 18, 3:55 PM · Restricted Project
aemerson updated the diff for D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..

Store alignment, volatile and addrspace info in MMOs.

Thu, Jul 18, 3:54 PM · Restricted Project
aemerson added inline comments to D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..
Thu, Jul 18, 2:59 PM · Restricted Project
aemerson added inline comments to D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..
Thu, Jul 18, 2:50 PM · Restricted Project
aemerson added a comment to D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..

Sigh, I think we also need to pass through the alignments of the src and dest parameters. SelectionDAG does this during building using MemCpyInst::{getDestAlignment(),getSrcAlignment()} and I think we currently lose that information during translation.

Thu, Jul 18, 2:39 PM · Restricted Project
aemerson updated the diff for D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..

Translate the volatile flag to an immediate instead of a G_CONSTANT.

Thu, Jul 18, 2:30 PM · Restricted Project
aemerson accepted D64944: [GlobalISel][AArch64] Add support for base register + offset register loads.

LGTM.

Thu, Jul 18, 2:13 PM · Restricted Project
aemerson updated the diff for D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..

Add a getIntrinsicID() method to MachineInstr.

Thu, Jul 18, 1:17 AM · Restricted Project

Wed, Jul 17

aemerson added inline comments to D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..
Wed, Jul 17, 5:19 PM · Restricted Project
aemerson updated the diff for D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..

Factor out the code to get the intrinsic ID from an MI into a helper in Utils.

Wed, Jul 17, 5:02 PM · Restricted Project
aemerson updated the diff for D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..

Allow non-zero address spaces.

Wed, Jul 17, 4:39 PM · Restricted Project
aemerson created D64895: [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later..
Wed, Jul 17, 3:43 PM · Restricted Project
aemerson accepted D64138: GlobalISel: Handle more cases for widenScalar of G_MERGE_VALUES.
Wed, Jul 17, 11:28 AM
aemerson added inline comments to D64845: [GlobalISel] Check LLT size matches memory size for non-truncating stores..
Wed, Jul 17, 11:24 AM · Restricted Project

Tue, Jul 16

aemerson added inline comments to D64845: [GlobalISel] Check LLT size matches memory size for non-truncating stores..
Tue, Jul 16, 7:12 PM · Restricted Project
aemerson created D64845: [GlobalISel] Check LLT size matches memory size for non-truncating stores..
Tue, Jul 16, 6:57 PM · Restricted Project
aemerson committed rL366290: Fix more -Werror issues with obsequi..
Fix more -Werror issues with obsequi.
Tue, Jul 16, 6:22 PM
aemerson committed rL366287: Obsequi: fix implicit declaration of a function, breaks -Werror builds..
Obsequi: fix implicit declaration of a function, breaks -Werror builds.
Tue, Jul 16, 5:09 PM
aemerson committed rL366277: Enable the obsequi application for Darwin. It seems to run with no issues..
Enable the obsequi application for Darwin. It seems to run with no issues.
Tue, Jul 16, 3:41 PM
aemerson accepted D64755: ARM: Fix missing immarg for space intrinsic.

LGTM.

Tue, Jul 16, 3:18 PM
aemerson added a comment to D64138: GlobalISel: Handle more cases for widenScalar of G_MERGE_VALUES.

I didn't bother reviewing this as the other patch seemed to supersede it. Can it be abandoned?

Tue, Jul 16, 3:10 PM
aemerson accepted D64686: GlobalISel: Add overload of handleAssignments with CCState.
Tue, Jul 16, 3:06 PM
aemerson committed rG88ed076e4475: Add missing test for r366215 (authored by aemerson).
Add missing test for r366215
Tue, Jul 16, 8:30 AM
aemerson committed rL366218: Add missing test for r366215.
Add missing test for r366215
Tue, Jul 16, 8:29 AM
aemerson committed rG228a7b4f2a35: [ADCE] Fix non-deterministic behaviour due to iterating over a pointer set. (authored by aemerson).
[ADCE] Fix non-deterministic behaviour due to iterating over a pointer set.
Tue, Jul 16, 8:24 AM
aemerson committed rL366215: [ADCE] Fix non-deterministic behaviour due to iterating over a pointer set..
[ADCE] Fix non-deterministic behaviour due to iterating over a pointer set.
Tue, Jul 16, 8:24 AM
aemerson closed D64785: [ADCE] Fix non-deterministic behaviour due to iterating over a pointer set.
Tue, Jul 16, 8:24 AM · Restricted Project
aemerson added a comment to D64785: [ADCE] Fix non-deterministic behaviour due to iterating over a pointer set.

Test IR:

Tue, Jul 16, 12:45 AM · Restricted Project
aemerson created D64785: [ADCE] Fix non-deterministic behaviour due to iterating over a pointer set.
Tue, Jul 16, 12:44 AM · Restricted Project

Mon, Jul 15

aemerson added a comment to D64339: TableGen/GlobalISel: Fix handling of truncstore patterns.

Thanks for doing this Matt. This bug was blocking landing the power of 2 load/store legalization patch for arm64.

Mon, Jul 15, 11:05 PM
aemerson accepted D64732: GlobalISel: Implement narrowScalar for vector extract/insert indexes.

LGTM.

Mon, Jul 15, 12:07 PM

Wed, Jul 10

aemerson committed rG7a4d2df04a93: [AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and… (authored by aemerson).
[AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and…
Wed, Jul 10, 12:23 PM
aemerson committed rL365690: [AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and….
[AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and…
Wed, Jul 10, 12:22 PM
aemerson closed D64377: [AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and unknown values.
Wed, Jul 10, 12:22 PM · Restricted Project
aemerson accepted D64520: [GlobalISel][AArch64] Use getOpcodeDef instead of findMIFromReg.

LGTM.

Wed, Jul 10, 11:33 AM · Restricted Project
aemerson accepted D64513: [GlobalISel][AArch64][NFC] Use getDefIgnoringCopies from Utils where we can.

LGTM.

Wed, Jul 10, 11:30 AM · Restricted Project

Tue, Jul 9

aemerson accepted D64436: GlobalISel: Combine unmerge of merge with intermediate cast .
Tue, Jul 9, 2:55 PM
aemerson added inline comments to D64436: GlobalISel: Combine unmerge of merge with intermediate cast .
Tue, Jul 9, 2:31 PM
aemerson accepted D64155: GlobalISel: Handle widenScalar of arbitrary G_MERGE_VALUES sources.
Tue, Jul 9, 10:46 AM
aemerson committed rG6616e269a690: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional… (authored by aemerson).
[AArch64][GlobalISel] Optimize conditional branches followed by unconditional…
Tue, Jul 9, 9:07 AM
aemerson committed rL365510: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional….
[AArch64][GlobalISel] Optimize conditional branches followed by unconditional…
Tue, Jul 9, 9:06 AM
aemerson closed D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches.
Tue, Jul 9, 9:06 AM · Restricted Project
aemerson accepted D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches.

Marking as accepted.

Tue, Jul 9, 8:50 AM · Restricted Project

Mon, Jul 8

aemerson added inline comments to D64177: GlobalISel: fewerElementsVector for G_TRUNC.
Mon, Jul 8, 4:46 PM
aemerson added inline comments to D64155: GlobalISel: Handle widenScalar of arbitrary G_MERGE_VALUES sources.
Mon, Jul 8, 4:35 PM
aemerson added a parent revision for D64377: [AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and unknown values: D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches.
Mon, Jul 8, 4:10 PM · Restricted Project
aemerson added a child revision for D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches: D64377: [AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and unknown values.
Mon, Jul 8, 4:10 PM · Restricted Project
aemerson created D64377: [AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and unknown values.
Mon, Jul 8, 4:09 PM · Restricted Project
aemerson accepted D64371: [AArch64][GlobalISel] Use TST for comparisons when possible.

LGTM with comment fix and minor nit.

Mon, Jul 8, 3:47 PM · Restricted Project
aemerson updated the diff for D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches.

Add missing test.

Mon, Jul 8, 2:33 PM · Restricted Project
aemerson updated the diff for D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches.

New patch to do the optimization in the CombinerHelper and add it to the prelegalizer combiner for AArch64.

Mon, Jul 8, 2:24 PM · Restricted Project
aemerson added inline comments to D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches.
Mon, Jul 8, 11:15 AM · Restricted Project
aemerson added a comment to D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches.

This seemed a little presumptive to do for all targets for me. I can try to move it earlier into a Combiner helper, since I don't want to put optimizations into the IRTranslator unless we can't do it in other places.

Mon, Jul 8, 10:20 AM · Restricted Project
aemerson created D64354: [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches.
Mon, Jul 8, 9:46 AM · Restricted Project

Tue, Jul 2

aemerson committed rGcac1151845e6: [AArch64][GlobalISel] Overhaul legalization & isel or shifts to select… (authored by aemerson).
[AArch64][GlobalISel] Overhaul legalization & isel or shifts to select…
Tue, Jul 2, 6:53 PM
aemerson committed rL364994: [AArch64][GlobalISel] Overhaul legalization & isel or shifts to select….
[AArch64][GlobalISel] Overhaul legalization & isel or shifts to select…
Tue, Jul 2, 6:53 PM
aemerson closed D63910: [AArch64][GlobalISel] Overhaul legalization & isel or shifts to select immediate forms.
Tue, Jul 2, 6:53 PM · Restricted Project
aemerson added a comment to D63910: [AArch64][GlobalISel] Overhaul legalization & isel or shifts to select immediate forms.

@paquette ok for arm64?

Tue, Jul 2, 3:22 PM · Restricted Project
aemerson accepted D61289: [globalisel] Add G_SEXT_INREG.

I think it would be useful to have generic UBFE/SBFE instructions, which could take the place of sext_inreg. However, those would allow variable offset/width, so it wouldn't bee quite the same.

Tue, Jul 2, 1:33 PM · Restricted Project
aemerson accepted D64084: [AArch64][GlobalISel] Teach tryOptSelect to handle G_ICMP.

Nice cleanup, some minor comments.

Tue, Jul 2, 10:53 AM · Restricted Project

Mon, Jul 1

aemerson accepted D64054: GlobalISel: Add G_FENCE.

Can you add an IRTranslator test and commit that separately from the selector changes.

Mon, Jul 1, 11:52 PM
aemerson committed rG000ef2c2ae07: [TailDuplicator] Fix copy instruction emitting into the wrong block. (authored by aemerson).
[TailDuplicator] Fix copy instruction emitting into the wrong block.
Mon, Jul 1, 11:08 PM
aemerson committed rL364888: [TailDuplicator] Fix copy instruction emitting into the wrong block..
[TailDuplicator] Fix copy instruction emitting into the wrong block.
Mon, Jul 1, 11:05 PM
aemerson closed D64049: [TailDuplicator] Fix copy instruction emitting into the wrong block..
Mon, Jul 1, 11:05 PM · Restricted Project
aemerson created D64049: [TailDuplicator] Fix copy instruction emitting into the wrong block..
Mon, Jul 1, 5:08 PM · Restricted Project
aemerson accepted D63969: AMDGPU/GlobalISel: Lower SALU min/max to cmp+select.

I don't know AMDGPU but the code changes seem ok now.

Mon, Jul 1, 11:06 AM

Sun, Jun 30

aemerson added a comment to D63969: AMDGPU/GlobalISel: Lower SALU min/max to cmp+select.

This change makes a pretty significant implicit design change that I don't agree with. It doesn't seem right that the legalizer routines should have to know about regbanks or how to propagate them. I think the two passes should remain separate, an opt-in change observer seems like the better approach here.

Sun, Jun 30, 12:26 AM

Fri, Jun 28

aemerson updated the diff for D63910: [AArch64][GlobalISel] Overhaul legalization & isel or shifts to select immediate forms.

Address comment and rebase on top of unsigned->Register changes.

Fri, Jun 28, 3:21 PM · Restricted Project

Thu, Jun 27

aemerson added a reviewer for D63910: [AArch64][GlobalISel] Overhaul legalization & isel or shifts to select immediate forms: rovka.
Thu, Jun 27, 5:31 PM · Restricted Project
aemerson added a comment to D63910: [AArch64][GlobalISel] Overhaul legalization & isel or shifts to select immediate forms.

I decided to not change the existing AArch64 SelectionDAG patterns to use i32 because there were a few too many places that hard coded it in, in lowering as well as the TableGen.

Thu, Jun 27, 5:25 PM · Restricted Project
aemerson created D63910: [AArch64][GlobalISel] Overhaul legalization & isel or shifts to select immediate forms.
Thu, Jun 27, 5:25 PM · Restricted Project
aemerson committed rGecb7ac35f9de: [GlobalISel][IRTranslator] Fix some PHI bugs related to jump tables when… (authored by aemerson).
[GlobalISel][IRTranslator] Fix some PHI bugs related to jump tables when…
Thu, Jun 27, 4:57 PM
aemerson committed rL364613: [GlobalISel][IRTranslator] Fix some PHI bugs related to jump tables when….
[GlobalISel][IRTranslator] Fix some PHI bugs related to jump tables when…
Thu, Jun 27, 4:57 PM
aemerson committed rG4fcf0004fa7b: [LangRef] Clarify codegen expectations for intrinsics with fp/integer-only… (authored by aemerson).
[LangRef] Clarify codegen expectations for intrinsics with fp/integer-only…
Thu, Jun 27, 4:35 PM
aemerson committed rL364610: [LangRef] Clarify codegen expectations for intrinsics with fp/integer-only….
[LangRef] Clarify codegen expectations for intrinsics with fp/integer-only…
Thu, Jun 27, 4:35 PM
aemerson closed D59657: [LangRef] Clarify codegen expectations for intrinsics with fp/integer-only overloads.
Thu, Jun 27, 4:35 PM · Restricted Project

Tue, Jun 25

aemerson added a comment to D63169: [GlobalISel][IRTranslator] Change switch table translation to generate jump tables and range checks..

@aemerson Hi, I committed rL364124 to fix the link error on -DBUILD_SHARED_LIBS=on builds, but I am not sure if the dependency should be added. Can you take a look?

Tue, Jun 25, 5:09 PM · Restricted Project
aemerson added a comment to D63551: [GlobalISel] Accept multiple vregs for lowerCall's arguments.

Hi Amara,

Is something like this OK for intrinsics: https://reviews.llvm.org/differential/diff/206394/ ? It has the disadvantage that if we have an intrinsic with 2 aggregate args, it will be hard to tell where one of them ends and the next one begins. OTOH, I'm having trouble finding intrinsics with even one aggregate parameter, and in fact just using getOrCreateVReg there doesn't cause check-all to crash (nor the test-suite, nor selfhost at -O0 on AArch64).

Alternatively, we could preserve the old interface here and try to move pack/unpackRegs to utils, where we can use them from both the IRTranslator and CallLowering.

Either way, it would be nice to be able to add a test-case before changing this interface, but like I said I don't really know my way around intrinsics that well. Any suggestions?

Tue, Jun 25, 1:44 PM · Restricted Project

Jun 21 2019

aemerson committed rG6e71b34fe69a: [AArch64][GlobalISel] Implement selection support for the new G_JUMP_TABLE and… (authored by aemerson).
[AArch64][GlobalISel] Implement selection support for the new G_JUMP_TABLE and…
Jun 21 2019, 11:08 AM
aemerson committed rGfe4625fb2485: [GlobalISel][IRTranslator] Change switch table translation to generate jump… (authored by aemerson).
[GlobalISel][IRTranslator] Change switch table translation to generate jump…
Jun 21 2019, 11:08 AM
aemerson committed rL364086: [AArch64][GlobalISel] Implement selection support for the new G_JUMP_TABLE and….
[AArch64][GlobalISel] Implement selection support for the new G_JUMP_TABLE and…
Jun 21 2019, 11:08 AM
aemerson committed rL364085: [GlobalISel][IRTranslator] Change switch table translation to generate jump….
[GlobalISel][IRTranslator] Change switch table translation to generate jump…
Jun 21 2019, 11:08 AM
aemerson closed D63223: [AArch64][GlobalISel] Implement selection support for the new G_JUMP_TABLE and G_BRJT ops.
Jun 21 2019, 11:08 AM · Restricted Project
aemerson closed D63169: [GlobalISel][IRTranslator] Change switch table translation to generate jump tables and range checks..
Jun 21 2019, 11:07 AM · Restricted Project
aemerson committed rL364075: [AArch64][GlobalISel] Make s8 and s16 G_CONSTANTs legal..
[AArch64][GlobalISel] Make s8 and s16 G_CONSTANTs legal.
Jun 21 2019, 9:43 AM
aemerson committed rG8f25a021dd12: [AArch64][GlobalISel] Make s8 and s16 G_CONSTANTs legal. (authored by aemerson).
[AArch64][GlobalISel] Make s8 and s16 G_CONSTANTs legal.
Jun 21 2019, 9:42 AM
aemerson closed D63587: [AArch64][GlobalISel] Make s8 and s16 G_CONSTANTs legal.
Jun 21 2019, 9:42 AM · Restricted Project

Jun 20 2019

aemerson committed rGbc0d08e0eec6: [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of… (authored by aemerson).
[GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of…
Jun 20 2019, 5:35 PM
aemerson committed rL364001: [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of….
[GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of…
Jun 20 2019, 5:33 PM
aemerson closed D63630: [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of instructions.
Jun 20 2019, 5:33 PM · Restricted Project
aemerson updated the diff for D63169: [GlobalISel][IRTranslator] Change switch table translation to generate jump tables and range checks..

Addressed comments.

Jun 20 2019, 5:28 PM · Restricted Project
aemerson added a comment to D63587: [AArch64][GlobalISel] Make s8 and s16 G_CONSTANTs legal.

Should something like D56706 go along with this?

Maybe?

@dsanders Should we have a generic post legalizer combiner pass now?

A generic post legalizer combiner is tricky because targets often want very different things. The plan is to have generic rules that target specific combiners can opt into in a reasonable way (e.g. by groups based on a generalized trait of the target) via the CombinerHelper

Jun 20 2019, 5:22 PM · Restricted Project
aemerson created D63630: [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of instructions.
Jun 20 2019, 4:25 PM · Restricted Project
aemerson accepted D63552: [AArch64 GlobalISel] Cleanup CallLowering. NFCI.

Thanks so much for working on these patches Diana! It's tricky business, can you be sure to run test suites thoroughly before committing if you haven't already.

Jun 20 2019, 2:46 PM · Restricted Project
aemerson added a comment to D63551: [GlobalISel] Accept multiple vregs for lowerCall's arguments.

LGTM too if we remove the last packRegs use and delete the IRTranslator pack/unpackRegs() implementations.

Jun 20 2019, 11:40 AM · Restricted Project