Page MenuHomePhabricator

aeubanks (Arthur Eubanks)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 12 2020, 11:23 AM (71 w, 12 h)

Recent Activity

Yesterday

aeubanks updated the summary of D104798: [WPD] Don't optimize calls more than once.
Wed, Jun 23, 7:56 PM · Restricted Project
aeubanks added a comment to D104798: [WPD] Don't optimize calls more than once.

This probably requires more test coverage, but I'm not super familiar

WPD currently assumes that each vtable load corresponds to one virtual call. However, with -fstrict-vtable-pointers this may not be true.

In the test case there is still a one to one correlation between the vtable load and virtual call. Do you mean that it can correspond to more than one type test assume sequence?

Originally there are two vtable loads, each with a type test assume sequence. The vtable loads become coalesced, leaving two type test assume sequences for one vtable load.

I assume -fstrict-vtable-pointers was what allowed the vtable loads to be coalesced? The description seems wrong though, since it is talking about one vtable load to one virtual call, and here that is still the case. I'm a little confused - in the test case why would there originally have been 2 vtable loads for that single virtual call?

Oh my test case is confusing. I omitted the second virtual call in the test case and the crash still reproduced.

It looks like the issue is that we no longer have a one to one correspondence between type test assume sequences and virtual calls - is that correct?

Yeah I think your statement makes more sense.

Also, do we need to do something similar for singleImplDevirt, or why does this issue not occur there?

Ah I missed that. Probably it just happened that it didn't trigger in Chrome. Added to that part.

Wed, Jun 23, 7:56 PM · Restricted Project
aeubanks updated the diff for D104798: [WPD] Don't optimize calls more than once.

also handle singleImplDevirt

Wed, Jun 23, 7:55 PM · Restricted Project
aeubanks committed rGe15673df2797: [docs][NewPM] Add some instructions on how to invoke opt (authored by aeubanks).
[docs][NewPM] Add some instructions on how to invoke opt
Wed, Jun 23, 7:50 PM
aeubanks closed D104812: [docs][NewPM] Add some instructions on how to invoke opt.
Wed, Jun 23, 7:49 PM · Restricted Project
aeubanks added a comment to D104812: [docs][NewPM] Add some instructions on how to invoke opt.

I see what you mean by module(func-pass) vs function(func-pass), but function(func-pass) is much more unambiguous. If there was a cgscc pass and a function pass with the same name it would be ambiguous.

Wed, Jun 23, 7:45 PM · Restricted Project
aeubanks updated the diff for D104812: [docs][NewPM] Add some instructions on how to invoke opt.

clarify IR Unit

Wed, Jun 23, 7:42 PM · Restricted Project
aeubanks added inline comments to D104812: [docs][NewPM] Add some instructions on how to invoke opt.
Wed, Jun 23, 5:02 PM · Restricted Project
aeubanks updated the diff for D104812: [docs][NewPM] Add some instructions on how to invoke opt.

address comments

Wed, Jun 23, 5:02 PM · Restricted Project
aeubanks added reviewers for D104812: [docs][NewPM] Add some instructions on how to invoke opt: asbirlea, ychen, nickdesaulniers.
Wed, Jun 23, 1:17 PM · Restricted Project
aeubanks requested review of D104812: [docs][NewPM] Add some instructions on how to invoke opt.
Wed, Jun 23, 1:17 PM · Restricted Project
aeubanks added a comment to D104798: [WPD] Don't optimize calls more than once.

This probably requires more test coverage, but I'm not super familiar

Wed, Jun 23, 11:56 AM · Restricted Project
aeubanks added reviewers for D104798: [WPD] Don't optimize calls more than once: tejohnson, pcc.
Wed, Jun 23, 10:55 AM · Restricted Project
aeubanks requested review of D104798: [WPD] Don't optimize calls more than once.
Wed, Jun 23, 10:49 AM · Restricted Project
aeubanks accepted D104740: [OpaquePtr] Support call instruction.

at some point, this might not be necessary if all function pointers become opaque pointers, right?
but for now we do need this

Wed, Jun 23, 9:53 AM · Restricted Project

Tue, Jun 22

aeubanks added a comment to D104752: [LLParser] Remove special handling for call address space.

I'm confused by "The pointer address space of the callee should always match the specified addrspace". The addrspace on the call sounds like it's basically the "expected" addrspace and could affect lower of the call instruction itself. But the call operand might not be of that addrspace, whether it's a direct call's callee, or an indirect call's function pointer.

Tue, Jun 22, 3:13 PM · Restricted Project
aeubanks added a comment to D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.

Ah, I read the "in addition" incorrectly, I thought it was a separate section from the musttail.

Tue, Jun 22, 3:07 PM · Restricted Project
aeubanks added a comment to D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.

I never read the LangRef carefully enough, apparently we already expect ABI attributes to match [1]:

All ABI-impacting function attributes, such as sret, byval, inreg, returned, and inalloca, must match.

[1]: https://llvm.org/docs/LangRef.html#id327

Tue, Jun 22, 2:26 PM · Restricted Project
aeubanks added inline comments to D104740: [OpaquePtr] Support call instruction.
Tue, Jun 22, 2:12 PM · Restricted Project
aeubanks added a comment to D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.

I remembered that I needed the same sort of function for inalloca, and inalloca also needs to match CallBase::isInAllocaArgument(), so I went ahead and did if for preallocated as well.

Tue, Jun 22, 1:48 PM · Restricted Project
aeubanks updated the summary of D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.
Tue, Jun 22, 1:44 PM · Restricted Project
aeubanks added a comment to D104740: [OpaquePtr] Support call instruction.

could you add a test for a call with arguments?

Tue, Jun 22, 1:44 PM · Restricted Project
aeubanks updated the summary of D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.
Tue, Jun 22, 1:32 PM · Restricted Project
aeubanks updated the diff for D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.

do the same for preallocated
add inalloca version

Tue, Jun 22, 1:32 PM · Restricted Project
aeubanks updated the summary of D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.
Tue, Jun 22, 12:16 PM · Restricted Project
aeubanks added a comment to D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.

CallBase::isByValArgument() and CallBase::getParamByValType() are *always* used together, so they need to match. We need to make sure that if isByValArgument() returns true, then getParamByValType() returns a non-null Type. Either we go down this route and preserve existing behavior, or we only look at the argument attributes, which is a change in behavior. For now I'd like to preserve existing behavior.

Tue, Jun 22, 12:16 PM · Restricted Project
aeubanks added a reviewer for D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type: Restricted Project.
Tue, Jun 22, 9:06 AM · Restricted Project
aeubanks accepted D104718: [OpaquePtr] Support changing load type in InstCombine.

lgtm with nit

Tue, Jun 22, 9:06 AM · Restricted Project
aeubanks added a reviewer for D104718: [OpaquePtr] Support changing load type in InstCombine: Restricted Project.
Tue, Jun 22, 9:01 AM · Restricted Project
aeubanks updated the diff for D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.

return the byval type first if it exists

Tue, Jun 22, 8:46 AM · Restricted Project
aeubanks accepted D104668: [OpaquePtr] Handle addrspacecasts in InstCombine.

lgtm with one nit

Tue, Jun 22, 8:26 AM · Restricted Project

Mon, Jun 21

aeubanks accepted D104625: [NewPM] Print passes with params when using "opt -print-passes".

lgtm

Mon, Jun 21, 4:21 PM · Restricted Project
aeubanks added a comment to D104668: [OpaquePtr] Handle addrspacecasts in InstCombine.

Any thoughts on the approach here? Is the !isOpaque() ? getElementType() : nullptr pattern something we should add a helper function for? Not sure how common this is going to be outside these cast transforms.

Or possibly PointerType::hasSameElementTypeAs(PointerType *) would make sense here.

Mon, Jun 21, 3:21 PM · Restricted Project
aeubanks committed rGa24035883356: [llvm-reduce] Don't delete arguments of intrinsics (authored by langston-barrett).
[llvm-reduce] Don't delete arguments of intrinsics
Mon, Jun 21, 12:44 PM
aeubanks closed D103129: [llvm-reduce] Don't delete arguments of intrinsics.
Mon, Jun 21, 12:44 PM · Restricted Project
aeubanks added a comment to D103129: [llvm-reduce] Don't delete arguments of intrinsics.

no problem, will do

Mon, Jun 21, 12:41 PM · Restricted Project
aeubanks requested review of D104663: [OpaquePtr] Remove checking pointee type for byval/preallocated type.
Mon, Jun 21, 12:26 PM · Restricted Project
aeubanks accepted D103129: [llvm-reduce] Don't delete arguments of intrinsics.

lgtm, thanks!

Mon, Jun 21, 10:30 AM · Restricted Project
aeubanks added a comment to D103129: [llvm-reduce] Don't delete arguments of intrinsics.

the displayed diff is only the latest diff

Mon, Jun 21, 10:14 AM · Restricted Project
aeubanks accepted D104655: [OpaquePtr] Support opaque constant expression GEP.

lgtm, thanks!

Mon, Jun 21, 9:50 AM · Restricted Project
aeubanks accepted D104652: [OpaquePtr] Return opaque pointer from opaque pointer GEP.

what about GEP constants? do we need to do something special for those in ValueEnumerator?

Mon, Jun 21, 8:50 AM · Restricted Project
aeubanks added a comment to D104625: [NewPM] Print passes with params when using "opt -print-passes".

could you add to the existing -print-passes test one loop pass and one function pass?

Mon, Jun 21, 8:24 AM · Restricted Project

Tue, Jun 15

aeubanks added a comment to D104272: [OpaquePtr] Mangle intrinsics with opaque pointers arguments.

I couldn't parse your comment, could you rephrase?

Tue, Jun 15, 5:00 PM · Restricted Project
aeubanks accepted D104272: [OpaquePtr] Mangle intrinsics with opaque pointers arguments.

lgtm, now that I understand intrinsics a bit more, this seems trivial enough to not need input from llvm-dev

Tue, Jun 15, 4:43 PM · Restricted Project
aeubanks added a comment to D104272: [OpaquePtr] Mangle intrinsics with opaque pointers arguments.

The patch looks mostly good, but I'm not sold on "op". Can we just use "p"?

Presumably then we wouldn't know whether to parse a type after the address space or not? Unless we only support this when everything is opaque pointers? (so there can be no confusion between opaque pointers or not)

Tue, Jun 15, 4:12 PM · Restricted Project
aeubanks added a comment to D104272: [OpaquePtr] Mangle intrinsics with opaque pointers arguments.

The patch looks mostly good, but I'm not sold on "op". Can we just use "p"?

Tue, Jun 15, 3:08 PM · Restricted Project
aeubanks accepted D104309: [OpaquePtr] Verify Opaque pointer in function parameter.

lgtm

Tue, Jun 15, 2:46 PM · Restricted Project
aeubanks added inline comments to D104309: [OpaquePtr] Verify Opaque pointer in function parameter.
Tue, Jun 15, 2:09 PM · Restricted Project
aeubanks committed rG9aa1428174ae: [InstSimplify] Treat invariant group insts as bitcasts for load operands (authored by aeubanks).
[InstSimplify] Treat invariant group insts as bitcasts for load operands
Tue, Jun 15, 1:00 PM
aeubanks closed D101103: [InstSimplify] Treat invariant group insts as bitcasts for load operands.
Tue, Jun 15, 12:59 PM · Restricted Project
aeubanks added inline comments to D104151: [docs][OpaquePtr] Shuffle around the transition plan section.
Tue, Jun 15, 12:02 PM · Restricted Project
aeubanks accepted D104099: [NewPM] Remove SpeculateAroundPHIs pass.

looks good, we can always revive the pass later if somebody wants it for some reason

Tue, Jun 15, 10:31 AM · Restricted Project, Restricted Project
aeubanks updated the diff for D101713: [OpaquePtr] Use ArgListEntry indirect types more in ISel lowering.

rebase

Tue, Jun 15, 10:28 AM · Restricted Project
aeubanks added a comment to D104309: [OpaquePtr] Verify Opaque pointer in function parameter.

can you add some negative tests for this? e.g. make sure you see the proper message for something like

call void @f(ptr inalloca(%somenotsizedtype) %a)
Tue, Jun 15, 10:22 AM · Restricted Project
aeubanks committed rGbe5d454f3f07: [NFC][OpaquePtr] Avoid calling getPointerElementType() (authored by aeubanks).
[NFC][OpaquePtr] Avoid calling getPointerElementType()
Tue, Jun 15, 9:53 AM
aeubanks committed rG25b2126b9e9c: [NFC] Remove redundant variable (authored by aeubanks).
[NFC] Remove redundant variable
Tue, Jun 15, 9:53 AM
aeubanks closed D103719: [NFC][OpaquePtr] Avoid calling getPointerElementType().
Tue, Jun 15, 9:53 AM · Restricted Project
aeubanks closed D103706: [NFC] Remove redundant variable.
Tue, Jun 15, 9:53 AM · Restricted Project

Mon, Jun 14

aeubanks added a comment to D104272: [OpaquePtr] Mangle intrinsics with opaque pointers arguments.

maybe we should make a quick post on llvm-dev about this to see what other people think, since this will be very user-visible

Mon, Jun 14, 4:09 PM · Restricted Project
aeubanks added a comment to D104272: [OpaquePtr] Mangle intrinsics with opaque pointers arguments.

there needs to be tests, and the description should probably state what's going on

Mon, Jun 14, 3:14 PM · Restricted Project
aeubanks added a reviewer for D104272: [OpaquePtr] Mangle intrinsics with opaque pointers arguments: dblaikie.
Mon, Jun 14, 3:13 PM · Restricted Project
aeubanks committed rGcc8d32ae7d94: Move some code under NDEBUG from D103135 (authored by aeubanks).
Move some code under NDEBUG from D103135
Mon, Jun 14, 11:42 AM
aeubanks committed rG75d3b46ad2df: Remove accidentally added debugging code from D103135 (authored by aeubanks).
Remove accidentally added debugging code from D103135
Mon, Jun 14, 11:12 AM
aeubanks committed rG0e31e22ed973: [docs][OpaquePtr] Shuffle around the transition plan section (authored by aeubanks).
[docs][OpaquePtr] Shuffle around the transition plan section
Mon, Jun 14, 11:00 AM
aeubanks closed D104151: [docs][OpaquePtr] Shuffle around the transition plan section.
Mon, Jun 14, 11:00 AM · Restricted Project
aeubanks added inline comments to D104151: [docs][OpaquePtr] Shuffle around the transition plan section.
Mon, Jun 14, 10:59 AM · Restricted Project
aeubanks committed rG8c5a44901caf: [OpaquePtr] Remove existing support for forward compatibility (authored by aeubanks).
[OpaquePtr] Remove existing support for forward compatibility
Mon, Jun 14, 10:53 AM
aeubanks closed D103135: [OpaquePtr] Remove existing support for forward compatibility.
Mon, Jun 14, 10:53 AM · Restricted Project
aeubanks added a comment to D102909: [NPM] Ability to add a pass before a previously registered one.

The concrete use case I have is based on two separate plugin passes - one of them is responsible for inserting a few inline assembly instructions into functions according to a specific criteria and the second one's job is to make some adjustments to all the inline asm instructions in the module. The former needs to run before the latter to ensure all inline asm instructions are in place before the adjustments take place.
Both of those plugin passes are required to run on the last step of the optimizer pipeline, using the registerOptimizerLastEPCallback extension point, so there's not enough granularity available to ensure those are run in this specific order.

Mon, Jun 14, 10:53 AM · Restricted Project
aeubanks accepted D104216: NDEBUG ABI breaking changes fixes..

this seems like a hard battle to win, but lgtm (after clang-format fixes)

Mon, Jun 14, 9:31 AM · Restricted Project

Fri, Jun 11

aeubanks committed rG37a2c4517bbf: [NFC][OpaquePtr] Make getMemoryParamAllocType() compatible with opaque pointers (authored by aeubanks).
[NFC][OpaquePtr] Make getMemoryParamAllocType() compatible with opaque pointers
Fri, Jun 11, 4:02 PM
aeubanks added inline comments to D104151: [docs][OpaquePtr] Shuffle around the transition plan section.
Fri, Jun 11, 3:09 PM · Restricted Project
aeubanks updated the diff for D104151: [docs][OpaquePtr] Shuffle around the transition plan section.

wording

Fri, Jun 11, 3:09 PM · Restricted Project
aeubanks requested review of D104151: [docs][OpaquePtr] Shuffle around the transition plan section.
Fri, Jun 11, 1:35 PM · Restricted Project
aeubanks committed rG06c3d52aa2fa: [docs][OpaquePtr] Add some specific examples of what needs to be done (authored by aeubanks).
[docs][OpaquePtr] Add some specific examples of what needs to be done
Fri, Jun 11, 12:56 PM
aeubanks added a comment to D103135: [OpaquePtr] Remove existing support for forward compatibility.

@t.p.northover seems to not be responding, can we go forward with this?

Fri, Jun 11, 12:42 PM · Restricted Project
aeubanks updated the diff for D101713: [OpaquePtr] Use ArgListEntry indirect types more in ISel lowering.

rebase
check callee for byval/preallocated/inalloca type

Fri, Jun 11, 12:23 PM · Restricted Project
aeubanks retitled D101713: [OpaquePtr] Use ArgListEntry indirect types more in ISel lowering from [NFC] Use ArgListEntry indirect types more in ISel lowering to [OpaquePtr] Use ArgListEntry indirect types more in ISel lowering.
Fri, Jun 11, 12:22 PM · Restricted Project
aeubanks accepted D103867: [CHR] Don't run ControlHeightReduction if any BB has address taken.

lgtm

Fri, Jun 11, 11:53 AM · Restricted Project
aeubanks added a comment to D103717: [InstrProfiling][ELF] Make __profd_ private if the function does not use value profiling.

We are observing some crashes in coverage, but we haven't root caused them yet: crbug.com/1216811
So I guess we need to keep waiting for the dust to settle. @aeubanks was able to repro the crash there, but it's not deterministic.

Fri, Jun 11, 11:50 AM · Restricted Project
aeubanks committed rGc0c5a98b2c47: [NFC][OpaquePtr] Explicitly pass GEP source type in optimizeGatherScatterInst() (authored by aeubanks).
[NFC][OpaquePtr] Explicitly pass GEP source type in optimizeGatherScatterInst()
Fri, Jun 11, 11:50 AM
aeubanks closed D103480: [NFC][OpaquePtr] Explicitly pass GEP source type in optimizeGatherScatterInst().
Fri, Jun 11, 11:50 AM · Restricted Project
aeubanks updated the diff for D101103: [InstSimplify] Treat invariant group insts as bitcasts for load operands.

check for self referential values

Fri, Jun 11, 11:49 AM · Restricted Project
aeubanks reopened D101103: [InstSimplify] Treat invariant group insts as bitcasts for load operands.
Fri, Jun 11, 11:49 AM · Restricted Project
aeubanks updated the diff for D103480: [NFC][OpaquePtr] Explicitly pass GEP source type in optimizeGatherScatterInst().

add assert

Fri, Jun 11, 11:31 AM · Restricted Project
aeubanks added a comment to D102909: [NPM] Ability to add a pass before a previously registered one.

I'd still like to understand exactly what you'd be using this for. As in why does some pass need to run before all other instances of some other pass?

The concrete use case I have is based on two separate plugin passes - one of them is responsible for inserting a few inline assembly instructions into functions according to a specific criteria and the second one's job is to make some adjustments to all the inline asm instructions in the module. The former needs to run before the latter to ensure all inline asm instructions are in place before the adjustments take place.
Both of those plugin passes are required to run on the last step of the optimizer pipeline, using the registerOptimizerLastEPCallback extension point, so there's not enough granularity available to ensure those are run in this specific order.

Fri, Jun 11, 11:30 AM · Restricted Project
aeubanks accepted D104099: [NewPM] Remove SpeculateAroundPHIs pass.

Ah, sorry I missed where you mentioned LSR.

Fri, Jun 11, 11:10 AM · Restricted Project, Restricted Project
aeubanks added a reviewer for D104099: [NewPM] Remove SpeculateAroundPHIs pass: davidxl.
Fri, Jun 11, 10:53 AM · Restricted Project, Restricted Project
aeubanks added a comment to D104099: [NewPM] Remove SpeculateAroundPHIs pass.

Which pass that comes after SpeculateAroundPHIs in the X86 pipeline (either in the optimization or codegen) would undo its effects?

Fri, Jun 11, 10:25 AM · Restricted Project, Restricted Project
aeubanks added a comment to D104099: [NewPM] Remove SpeculateAroundPHIs pass.

Some backends don't run SimplifyCFG, e.g. X86. I believe the pass was originally created specifically for X86 (the header has some X86 examples) and may or may not extend to other targets (I'm not very familiar with the pass itself).

Fri, Jun 11, 10:16 AM · Restricted Project, Restricted Project
aeubanks added reviewers for D104099: [NewPM] Remove SpeculateAroundPHIs pass: asbirlea, echristo.
Fri, Jun 11, 9:58 AM · Restricted Project, Restricted Project

Thu, Jun 10

aeubanks added a reverting change for rG667fbcdd0b2e: [clang] NRVO: Improvements and handling of more cases.: rG85ca7e424fd0: Revert "[clang] NRVO: Improvements and handling of more cases.".
Thu, Jun 10, 8:46 PM
aeubanks committed rG85ca7e424fd0: Revert "[clang] NRVO: Improvements and handling of more cases." (authored by aeubanks).
Revert "[clang] NRVO: Improvements and handling of more cases."
Thu, Jun 10, 8:46 PM
aeubanks added a reverting change for rGcbd0054b9eb1: [clang] Implement P2266 Simpler implicit move: rGdb26615aa6a1: Revert "[clang] Implement P2266 Simpler implicit move".
Thu, Jun 10, 8:46 PM
aeubanks committed rGdb26615aa6a1: Revert "[clang] Implement P2266 Simpler implicit move" (authored by aeubanks).
Revert "[clang] Implement P2266 Simpler implicit move"
Thu, Jun 10, 8:46 PM
aeubanks added a reverting change for D99696: [clang] NRVO: Improvements and handling of more cases.: rG85ca7e424fd0: Revert "[clang] NRVO: Improvements and handling of more cases.".
Thu, Jun 10, 8:46 PM · Restricted Project
aeubanks added a reverting change for D99005: [clang] Implement P2266 Simpler implicit move: rGdb26615aa6a1: Revert "[clang] Implement P2266 Simpler implicit move".
Thu, Jun 10, 8:46 PM · Restricted Project
aeubanks added a comment to D99696: [clang] NRVO: Improvements and handling of more cases..

Crashes on a stage 2 build on Windows:

../rel/bin/clang-cl /nologo /showIncludes /Foobj/llvm/lib/MC/MCParser/MCParser.MasmParser.obj /c ../../llvm/lib/MC/MCParser/MasmParser.cpp -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -DUNICODE -I../../llvm/include -Igen/llvm/include /Zi /FS -gline-tables-only -gcodeview-ghash /O2 /Gw /Zc:inline /EHs-c- /W4 -Wno-unused-parameter -Wdelete-non-virtual-dtor -Wstring-conversion -no-canonical-prefixes -Werror=date-time -fmsc-version=1916 /Brepro /winsysroot../../../sysroot -Wcovered-switch-default /GR-
Assertion failed: isa<X>(Val) && "cast<Ty>() argument of incompatible type!", file ../../llvm/include/llvm/Support/Casting.h, line 262
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: ../rel/bin/clang-cl /nologo /showIncludes /Foobj/llvm/lib/MC/MCParser/MCParser.MasmParser.obj /c ../../llvm/lib/MC/MCParser/MasmParser.cpp -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -DUNICODE -I../../llvm/include -Igen/llvm/include /Zi /FS -gline-tables-only -gcodeview-ghash /O2 /Gw /Zc:inline /EHs-c- /W4 -Wno-unused-parameter -Wdelete-non-virtual-dtor -Wstring-conversion -no-canonical-prefixes -Werror=date-time -fmsc-version=1916 /Brepro /winsysroot../../../sysroot -Wcovered-switch-default /GR-
1.      <eof> parser at end of file
2.      ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\ostream:320:36: instantiating function definition 'std::basic_ostream<char>::operator<<'
3.      ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocale:503:26: instantiating function definition 'std::use_facet<std::num_put<char>>'
4.      ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocnum:1417:35: instantiating function definition 'std::num_put<char>::_Getcat'
5.      ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocnum:1446:21: instantiating function definition 'std::num_put<char>::num_put'
6.      ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocnum:1504:36: instantiating function definition 'std::num_put<char>::do_put'
7.      ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocale:503:26: instantiating function definition 'std::use_facet<std::numpunct<char>>'
8.      ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocnum:163:16: instantiating function definition 'std::numpunct<char>::_Getcat'
9.      ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocnum:157:2: instantiating function definition 'std::numpunct<char>::numpunct'
10.     ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocnum:199:7: instantiating function definition 'std::numpunct<char>::_Init'
11.     ../../../sysroot\VC\Tools\MSVC\14.16.27023\include\xlocale:662:19: instantiating function definition 'std::_Maklocstr<char>'
 #0 0x00007ff7a6b48596 HandleAbort /b/f/w/llvm-project/build/rel/../../llvm/lib/Support/Windows/Signals.inc:408:0
 #1 0x00007ff7a9cee690 raise C:\src\llvm-project\build\rel\minkernel\crts\ucrt\src\appcrt\misc\signal.cpp:547:0
 #2 0x00007ff7a9ce3fd0 abort C:\src\llvm-project\build\rel\minkernel\crts\ucrt\src\appcrt\startup\abort.cpp:71:0
 #3 0x00007ff7a9ce4672 common_assert_to_stderr<wchar_t> C:\src\llvm-project\build\rel\minkernel\crts\ucrt\src\appcrt\startup\assert.cpp:186:0
 #4 0x00007ff7a9ce451a _wassert C:\src\llvm-project\build\rel\minkernel\crts\ucrt\src\appcrt\startup\assert.cpp:443:0
 #5 0x00007ff7a8899933 llvm::PointerUnion<const clang::Type *,const clang::ExtQuals *>::isNull /b/f/w/llvm-project/build/rel/../../llvm/include/llvm/ADT/PointerUnion.h:172:0
 #6 0x00007ff7a8899933 clang::QualType::isNull /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Type.h:734:0
 #7 0x00007ff7a8899933 clang::QualType::getCommonPtr /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Type.h:684:0
 #8 0x00007ff7a8899933 clang::QualType::getTypePtr /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Type.h:6428:0
 #9 0x00007ff7a8899933 llvm::simplify_type<clang::QualType>::getSimplifiedValue /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Type.h:1318:0
#10 0x00007ff7a8899933 llvm::simplify_type<const clang::QualType>::getSimplifiedValue /b/f/w/llvm-project/build/rel/../../llvm/include/llvm/Support/Casting.h:48:0
#11 0x00007ff7a8899933 llvm::isa_impl_wrap<clang::FunctionType,const clang::QualType,const clang::Type *>::doit /b/f/w/llvm-project/build/rel/../../llvm/include/llvm/Support/Casting.h:121:0
#12 0x00007ff7a8899933 llvm::isa /b/f/w/llvm-project/build/rel/../../llvm/include/llvm/Support/Casting.h:142:0
#13 0x00007ff7a8899933 llvm::cast /b/f/w/llvm-project/build/rel/../../llvm/include/llvm/Support/Casting.h:263:0
#14 0x00007ff7a8899933 clang::TemplateDeclInstantiator::VisitVarDecl(class clang::VarDecl *, bool, class llvm::ArrayRef<class clang::BindingDecl *> *) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:1110:0
#15 0x00007ff7a88b10f8 clang::Sema::SubstDecl::<lambda_0>::operator() /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3837:0
#16 0x00007ff7a88b10f8 llvm::function_ref<void ()>::callback_fn<`lambda at ../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3836:49'> /b/f/w/llvm-project/build/rel/../../llvm/include/llvm/ADT/STLExtras.h:177:0
#17 0x00007ff7a72917fd clang::Sema::runWithSufficientStackSpace(class clang::SourceLocation, class llvm::function_ref<(void)>) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/Sema.cpp:463:0
#18 0x00007ff7a88a9dce clang::Sema::SubstDecl(class clang::Decl *, class clang::DeclContext *, class clang::MultiLevelTemplateArgumentList const &) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3839:0
#19 0x00007ff7a8a11c2d `anonymous namespace'::TemplateInstantiator::TransformDefinition /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiate.cpp:1253:0
#20 0x00007ff7a8a11c2d clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDeclStmt /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/TreeTransform.h:7603:0
#21 0x00007ff7a89e3a61 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt /b/f/w/llvm-project/build/rel/gen/clang/include/clang/AST/StmtNodes.inc:97:0
#22 0x00007ff7a8a05ab8 clang::ActionResult<clang::Stmt *,1>::isInvalid /b/f/w/llvm-project/build/rel/../../clang/include/clang/Sema/Ownership.h:207:0
#23 0x00007ff7a8a05ab8 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/TreeTransform.h:7209:0
#24 0x00007ff7a8a11450 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/TreeTransform.h:7192:0
#25 0x00007ff7a89e39a0 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt /b/f/w/llvm-project/build/rel/gen/clang/include/clang/AST/StmtNodes.inc:73:0
#26 0x00007ff7a89e36a4 llvm::DenseMap<clang::Decl *,clang::Decl *,llvm::DenseMapInfo<clang::Decl *>,llvm::detail::DenseMapPair<clang::Decl *,clang::Decl *> >::~DenseMap /b/f/w/llvm-project/build/rel/../../llvm/include/llvm/ADT/DenseMap.h:755:0
#27 0x00007ff7a89e36a4 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::~TreeTransform /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/TreeTransform.h:101:0
#28 0x00007ff7a89e36a4 clang::Sema::SubstStmt(class clang::Stmt *, class clang::MultiLevelTemplateArgumentList const &) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiate.cpp:3463:0
#29 0x00007ff7a88ac61a clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4961:0
#30 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#31 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#32 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#33 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#34 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#35 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#36 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#37 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#38 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#39 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#40 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#41 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#42 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#43 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#44 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#45 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#46 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#47 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#48 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#49 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#50 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#51 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#52 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#53 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#54 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#55 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#56 0x00007ff7a88ac6fa clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation, class clang::FunctionDecl *, bool, bool, bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4986:0
#57 0x00007ff7a88af1ac clang::FunctionDecl::isDefined /b/f/w/llvm-project/build/rel/../../clang/include/clang/AST/Decl.h:2084:0
#58 0x00007ff7a88af1ac clang::Sema::PerformPendingInstantiations(bool) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6207:0
#59 0x00007ff7a7293711 llvm::TimeTraceScope::~TimeTraceScope /b/f/w/llvm-project/build/rel/../../llvm/include/llvm/Support/TimeProfiler.h:86:0
#60 0x00007ff7a7293711 clang::Sema::ActOnEndOfTranslationUnitFragment(enum clang::Sema::TUFragmentKind) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/Sema.cpp:1001:0
#61 0x00007ff7a72943ac clang::Sema::ActOnEndOfTranslationUnit(void) /b/f/w/llvm-project/build/rel/../../clang/lib/Sema/Sema.cpp:1042:0
#62 0x00007ff7a98dc220 clang::Parser::ParseTopLevelDecl(class clang::OpaquePtr<class clang::DeclGroupRef> &, bool) C:\src\llvm-project\clang\lib\Parse\Parser.cpp:693:0
#63 0x00007ff7a8bfe1ae clang::ParseAST(class clang::Sema &, bool, bool) C:\src\llvm-project\clang\lib\Parse\ParseAST.cpp:157:0
#64 0x00007ff7a7378a64 clang::FrontendAction::Execute(void) C:\src\llvm-project\clang\lib\Frontend\FrontendAction.cpp:955:0
#65 0x00007ff7a6830593 llvm::Error::getPtr C:\src\llvm-project\llvm\include\llvm\Support\Error.h:273:0
#66 0x00007ff7a6830593 llvm::Error::operator bool C:\src\llvm-project\llvm\include\llvm\Support\Error.h:236:0
#67 0x00007ff7a6830593 clang::CompilerInstance::ExecuteAction(class clang::FrontendAction &) C:\src\llvm-project\clang\lib\Frontend\CompilerInstance.cpp:977:0
#68 0x00007ff7a68c5ba3 clang::ExecuteCompilerInvocation(class clang::CompilerInstance *) C:\src\llvm-project\clang\lib\FrontendTool\ExecuteCompilerInvocation.cpp:278:0
#69 0x00007ff7a67b1a81 cc1_main(class llvm::ArrayRef<char const *>, char const *, void *) /b/f/w/llvm-project/build/rel/../../clang/tools/driver/cc1_main.cpp:246:0
#70 0x00007ff7a67c4df4 ExecuteCC1Tool /b/f/w/llvm-project/build/rel/../../clang/tools/driver/driver.cpp:338:0
#71 0x00007ff7a71584e6 clang::driver::CC1Command::Execute::<lambda_1>::operator() C:\src\llvm-project\clang\lib\Driver\Job.cpp:404:0
#72 0x00007ff7a71584e6 llvm::function_ref<void ()>::callback_fn<`lambda at ../../clang/lib/Driver/Job.cpp:404:22'> C:\src\llvm-project\llvm\include\llvm\ADT\STLExtras.h:177:0
#73 0x00007ff7a6b08cf2 llvm::CrashRecoveryContext::RunSafely(class llvm::function_ref<(void)>) /b/f/w/llvm-project/build/rel/../../llvm/lib/Support/CrashRecoveryContext.cpp:233:0
#74 0x00007ff7a7158171 clang::driver::CC1Command::Execute(class llvm::ArrayRef<class llvm::Optional<class llvm::StringRef>>, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> *, bool *) const C:\src\llvm-project\clang\lib\Driver\Job.cpp:404:0
#75 0x00007ff7a67f2345 clang::driver::Compilation::ExecuteCommand(class clang::driver::Command const &, class clang::driver::Command const *&) const /b/f/w/llvm-project/build/rel/../../clang/lib/Driver/Compilation.cpp:196:0
#76 0x00007ff7a67f282b clang::driver::Compilation::ExecuteJobs(class clang::driver::JobList const &, class llvm::SmallVectorImpl<struct std::pair<int, class clang::driver::Command const *>> &) const /b/f/w/llvm-project/build/rel/../../clang/lib/Driver/Compilation.cpp:249:0
#77 0x00007ff7a6809107 llvm::SmallVectorBase<unsigned int>::empty C:\src\llvm-project\llvm\include\llvm\ADT\SmallVector.h:72:0
#78 0x00007ff7a6809107 clang::driver::Driver::ExecuteCompilation(class clang::driver::Compilation &, class llvm::SmallVectorImpl<struct std::pair<int, class clang::driver::Command const *>> &) C:\src\llvm-project\clang\lib\Driver\Driver.cpp:1571:0
#79 0x00007ff7a67c468e main /b/f/w/llvm-project/build/rel/../../clang/tools/driver/driver.cpp:510:0
#80 0x00007ff7a9cd11e8 invoke_main d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78:0
#81 0x00007ff7a9cd11e8 __scrt_common_main_seh d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
#82 0x00007fff3e777c24 (C:\Windows\System32\KERNEL32.DLL+0x17c24)
#83 0x00007fff3ecad721 (C:\Windows\SYSTEM32\ntdll.dll+0x6d721)
clang-cl: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 13.0.0
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: ../rel/bin
clang-cl: note: diagnostic msg:
********************
Thu, Jun 10, 8:41 PM · Restricted Project
aeubanks added a comment to D103480: [NFC][OpaquePtr] Explicitly pass GEP source type in optimizeGatherScatterInst().

ping

Thu, Jun 10, 4:33 PM · Restricted Project
aeubanks added a comment to D103706: [NFC] Remove redundant variable.

ping

Thu, Jun 10, 4:33 PM · Restricted Project