Page MenuHomePhabricator

ab (Ahmed Bougacha)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 15 2014, 9:44 AM (310 w, 4 d)

Recent Activity

Thu, Sep 17

ab updated the diff for D87095: [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth..

Reformat ValidArchs.

Thu, Sep 17, 10:29 AM · Restricted Project, Restricted Project

Thu, Sep 3

ab added a comment to D87095: [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth..
In D87095#2255010, @pcc wrote:

But I was wondering: shouldn't this be the *last* patch? I was imagining that you would first upstream support for the -fptrauth-* flags, and then at the end you would add an arm64e subarch that turns them on by default. Otherwise the upstream compiler will temporarily produce ABI-incompatible objects when targeting arm64e.

Thu, Sep 3, 11:17 AM · Restricted Project, Restricted Project
ab requested review of D87095: [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth..
Thu, Sep 3, 9:33 AM · Restricted Project, Restricted Project

Tue, Sep 1

ab added a comment to D86105: [darwin] Disable the -Wpsabi warning.

Hmm, is there a more general way to disable warnings? I'm not familiar with these parts, so I'll defer to you folks =]

Tue, Sep 1, 4:15 PM

Aug 26 2020

ab committed rG383f7c88589c: [AArch64] Use CCAssignFnForReturn helper in more spots. NFC. (authored by ab).
[AArch64] Use CCAssignFnForReturn helper in more spots. NFC.
Aug 26 2020, 2:40 PM

Aug 20 2020

ab accepted D84502: [AArch64][GlobalISel] Implement __builtin_return_address for PAC-RET.
Aug 20 2020, 12:33 AM · Restricted Project

Jul 30 2020

ab added inline comments to D84502: [AArch64][GlobalISel] Implement __builtin_return_address for PAC-RET.
Jul 30 2020, 11:21 AM · Restricted Project

Jul 27 2020

ab accepted D84502: [AArch64][GlobalISel] Implement __builtin_return_address for PAC-RET.

This looks sensible, modulo a couple inline comments

Jul 27 2020, 10:44 AM · Restricted Project
ab accepted D84276: GlobalISel: Don't fail translate on intrinsics with metadata.

In rG55d10423a6a1f8286be05651b9c7143ef4e58b22

[GlobalISel] Don't translate intrinsics with metadata parameters.
Some intrinsics take metadata parameters. These all need custom handling of some form, and cannot possibly be lowered generically to G_INTRINSIC calls with vreg operands. Reject them, instead of hitting an assert later in getOrCreateVReg.

Is this still relevant? I guess we're just using custom legalization and selection to handle these nowadays?

(@ab do you have opinions here?)

Jul 27 2020, 10:15 AM · Restricted Project

Jun 30 2020

ab added a comment to D82699: [driver][arm64] Set target CPU to A12 for compiler invocations that target Apple Silicon .

@t.p.northover @ab I noticed that the use of "apple-a12" doesn't infer the right target features when we're passing in a11 or older, so that's why my test file has the INFER-A12 separate line. Do you think this is a bug? This is decided here:

else if ((A = Args.getLastArg(options::OPT_mcpu_EQ)))
  success = getAArch64ArchFeaturesFromMcpu(D, A->getValue(), Args, Features);

and CPU value isn't checked here.

Jun 30 2020, 7:34 AM · Restricted Project, Restricted Project

Apr 22 2020

ab added inline comments to D78252: [AArch64] FMLA/FMLS patterns improvement..
Apr 22 2020, 3:15 PM · Restricted Project

Apr 21 2020

ab added inline comments to D78252: [AArch64] FMLA/FMLS patterns improvement..
Apr 21 2020, 8:33 PM · Restricted Project

Apr 15 2020

ab added a comment to D78032: [llvm-objdump] Default to the "apple-latest" mcpu when disassembling arm64 Mach-O binaries.

Is it possible to make the (defaulting mcpu to "apple-latest") decision in a library, instead of in llvm-objdump and other individual tools?

Apr 15 2020, 2:18 PM · Restricted Project

Jan 9 2020

ab committed rG1c6ddedf949d: [AArch64] Adopt upstream ldraa syntax revert. NFC. (authored by ab).
[AArch64] Adopt upstream ldraa syntax revert. NFC.
Jan 9 2020, 4:53 PM
ab committed rG0981651bb89a: Update soft ptrauth pass to match upstream change 05da2fe5216. (authored by ab).
Update soft ptrauth pass to match upstream change 05da2fe5216.
Jan 9 2020, 3:46 PM
ab committed rG4c743ebd73ba: Merge commit 'refs/am/changes/05da2fe52162c80dfa18aedf70cf73cb11201811_apple/ma… (authored by ab).
Merge commit 'refs/am/changes/05da2fe52162c80dfa18aedf70cf73cb11201811_apple/ma…
Jan 9 2020, 3:46 PM
ab committed rG3b34e59d28b1: Merge commit 'refs/am/changes/44e5879f0fb7c28b90e8042fde81bba30b4090a3_apple/ma… (authored by ab).
Merge commit 'refs/am/changes/44e5879f0fb7c28b90e8042fde81bba30b4090a3_apple/ma…
Jan 9 2020, 3:41 PM
ab accepted D70329: [AArch64] Add isAuthenticating predicate to MCInstDesc.

Seems reasonable. This is an interesting use of MCID flags, in that llvm itself doesn't need it, but I'm all for better disassembler support!

Jan 9 2020, 3:24 PM · Restricted Project

Dec 12 2019

GitHub <noreply@github.com> committed rGcea2136d4bfa: Merge pull request #14 from apple/dev/arm64e-upstream (authored by ab).
Merge pull request #14 from apple/dev/arm64e-upstream
Dec 12 2019, 3:29 PM
ab committed rGe398fa8318cf: Language documentation for the pointer authentication feature. (authored by rjmccall).
Language documentation for the pointer authentication feature.
Dec 12 2019, 3:28 PM
ab committed rGf58c74f684cd: Implement the __ptrauth type qualifier. (authored by rjmccall).
Implement the __ptrauth type qualifier.
Dec 12 2019, 3:28 PM
ab committed rG34229b5deadc: Make the CGPointerAuthInfo parameter to the general CGCallee constructor… (authored by rjmccall).
Make the CGPointerAuthInfo parameter to the general CGCallee constructor…
Dec 12 2019, 3:28 PM
ab committed rGe004081624dd: Add prototype support for software pointer authentication. (authored by rjmccall).
Add prototype support for software pointer authentication.
Dec 12 2019, 3:28 PM
ab committed rGa8e307fc0a53: Sign the v-table pointer in ObjC exception RTTI. (authored by rjmccall).
Sign the v-table pointer in ObjC exception RTTI.
Dec 12 2019, 3:28 PM
ab committed rG21d1be074aed: Sign the destructor pointer passed to __cxa_throw. (authored by rjmccall).
Sign the destructor pointer passed to __cxa_throw.
Dec 12 2019, 3:28 PM
ab committed rG6ac1ad095fb3: Sign function pointers passed to atexit and __cxa_atexit. (authored by rjmccall).
Sign function pointers passed to atexit and __cxa_atexit.
Dec 12 2019, 3:28 PM
ab committed rG8c976181e393: Pointer authentication support for C++ member function pointers. (authored by rjmccall).
Pointer authentication support for C++ member function pointers.
Dec 12 2019, 3:28 PM
ab committed rG25e71b4def63: Add IR attributes to functions compiled under pointer authentication. (authored by rjmccall).
Add IR attributes to functions compiled under pointer authentication.
Dec 12 2019, 3:28 PM
ab committed rGa0183393e32b: Implement pointer authentication for C++ virtual functions, v-tables, and VTTs. (authored by rjmccall).
Implement pointer authentication for C++ virtual functions, v-tables, and VTTs.
Dec 12 2019, 3:28 PM
ab committed rGc077762f44cc: Record the original declaration for which a v-table slot was created. (authored by rjmccall).
Record the original declaration for which a v-table slot was created.
Dec 12 2019, 3:28 PM
ab committed rGea400995f8de: Pointer authentication support for ObjC method lists. (authored by rjmccall).
Pointer authentication support for ObjC method lists.
Dec 12 2019, 3:28 PM
ab committed rGfad0aa401b88: Pointer authentication for blocks. (authored by rjmccall).
Pointer authentication for blocks.
Dec 12 2019, 3:28 PM
ab committed rG2c01c3374bbd: IRGen preliminaries for pointer authentication, hopefully NFC. (authored by rjmccall).
IRGen preliminaries for pointer authentication, hopefully NFC.
Dec 12 2019, 3:28 PM
ab committed rG181e26190566: Implement pointer authentication for function pointers. (authored by rjmccall).
Implement pointer authentication for function pointers.
Dec 12 2019, 3:27 PM
ab committed rGa9dd959e60c3: Add support for the new pointer authentication builtins. (authored by rjmccall).
Add support for the new pointer authentication builtins.
Dec 12 2019, 3:27 PM
ab committed rG4ec8ebf0bae7: Add an API for computing an ABI-stable hash of a string. (authored by rjmccall).
Add an API for computing an ABI-stable hash of a string.
Dec 12 2019, 3:27 PM
ab committed rG46088d16f3a3: Basic ptrauth command-line flags. (authored by rjmccall).
Basic ptrauth command-line flags.
Dec 12 2019, 3:27 PM
ab committed rGb7c83adb3cf0: [DebugInfo] Add 'ptrauth' qualifier support. (authored by aprantl).
[DebugInfo] Add 'ptrauth' qualifier support.
Dec 12 2019, 3:27 PM
ab committed rGaf247a211494: [Transforms] Add pass for software expansion of ptrauth. (authored by Ahmed Bougacha <ahmed.bougacha@gmail.com>).
[Transforms] Add pass for software expansion of ptrauth.
Dec 12 2019, 3:27 PM
ab committed rG0b6fe1595587: [AArch64] Support return address authentication. (authored by ab).
[AArch64] Support return address authentication.
Dec 12 2019, 3:27 PM
ab committed rG4fdcd961441e: [AArch64] For arm64e Darwin TLS, sign the access thunk pointer. (authored by ab).
[AArch64] For arm64e Darwin TLS, sign the access thunk pointer.
Dec 12 2019, 3:27 PM
ab committed rG646d0c9d67c1: [AArch64] Lower calls with ptrauth operand bundles. (authored by ab).
[AArch64] Lower calls with ptrauth operand bundles.
Dec 12 2019, 3:27 PM
ab committed rG41c9f473fb3d: [AArch64] Lower "llvm.ptrauth" signed global wrappers. (authored by ab).
[AArch64] Lower "llvm.ptrauth" signed global wrappers.
Dec 12 2019, 3:27 PM
ab committed rGa90507b2d353: [InstCombine] Combine ptrauth intrinsics into call operand bundles. (authored by ab).
[InstCombine] Combine ptrauth intrinsics into call operand bundles.
Dec 12 2019, 3:27 PM
ab committed rG5b022b21037a: [IR] Define "ptrauth" operand bundles. (authored by ab).
[IR] Define "ptrauth" operand bundles.
Dec 12 2019, 3:27 PM
ab committed rG8198c132fd6c: [AArch64] Support emitting "hardened" jump-tables. (authored by ab).
[AArch64] Support emitting "hardened" jump-tables.
Dec 12 2019, 3:27 PM
ab committed rGcf672d9e3544: [AArch64] Fold auth + load sequences into LDRA. (authored by ab).
[AArch64] Fold auth + load sequences into LDRA.
Dec 12 2019, 3:26 PM
ab committed rG9f1a12cffd5f: [AArch64] Lower auth calls/tail-calls. (authored by ab).
[AArch64] Lower auth calls/tail-calls.
Dec 12 2019, 3:26 PM
ab committed rG08678efdde2f: [AArch64] Lower llvm.ptrauth.blend intrinsics. (authored by ab).
[AArch64] Lower llvm.ptrauth.blend intrinsics.
Dec 12 2019, 3:26 PM
ab committed rG2a06c80a657a: [AArch64] Lower llvm.ptrauth.strip intrinsics. (authored by ab).
[AArch64] Lower llvm.ptrauth.strip intrinsics.
Dec 12 2019, 3:26 PM
ab committed rG9622ba45c670: [AArch64] Lower llvm.ptrauth.auth/resign intrinsics. (authored by ab).
[AArch64] Lower llvm.ptrauth.auth/resign intrinsics.
Dec 12 2019, 3:26 PM
ab committed rGaad63485c1e9: [AArch64] Lower llvm.ptrauth.sign intrinsics. (authored by ab).
[AArch64] Lower llvm.ptrauth.sign intrinsics.
Dec 12 2019, 3:26 PM
ab committed rG481f2fd5699e: [Docs] Document Pointer Authentication IR additions. (authored by ab).
[Docs] Document Pointer Authentication IR additions.
Dec 12 2019, 3:26 PM
ab committed rGe652bd448282: [IR] Define new llvm.ptrauth intrinsics. (authored by ab).
[IR] Define new llvm.ptrauth intrinsics.
Dec 12 2019, 3:26 PM
ab committed rG13d4276f5472: [AArch64] Support @AUTH symbol variant and MachO reloc. (authored by ab).
[AArch64] Support @AUTH symbol variant and MachO reloc.
Dec 12 2019, 3:26 PM
ab committed rGd3d83e5c68d0: [AArch64] Add helper functions for mapping PAC keys and instructions. (authored by ab).
[AArch64] Add helper functions for mapping PAC keys and instructions.
Dec 12 2019, 3:26 PM
ab committed rG700888c06556: [AArch64] Support emitting arm64e MachO in Darwin AsmBackend. (authored by ab).
[AArch64] Support emitting arm64e MachO in Darwin AsmBackend.
Dec 12 2019, 3:25 PM
ab committed rGb79512654fa5: [utils] Teach UpdateTestChecks about arm64e. (authored by ab).
[utils] Teach UpdateTestChecks about arm64e.
Dec 12 2019, 3:25 PM
ab committed rGed270adc93db: [Object] Add MachO CPU_SUBTYPE_ARM64E. (authored by ab).
[Object] Add MachO CPU_SUBTYPE_ARM64E.
Dec 12 2019, 3:25 PM
ab committed rG7bda9ff4778d: [Triple] Add 'arm64e', an AArch64 sub-architecture. (authored by ab).
[Triple] Add 'arm64e', an AArch64 sub-architecture.
Dec 12 2019, 3:25 PM
ab committed rG5ed200f04dcb: [AArch64] Add 'lightning' CPU. (authored by ab).
[AArch64] Add 'lightning' CPU.
Dec 12 2019, 3:25 PM
ab committed rG11d7d3398f42: [AArch64] Add 'vortex' CPU. (authored by ab).
[AArch64] Add 'vortex' CPU.
Dec 12 2019, 3:25 PM
ab committed rG5cb5475e1a06: [AArch64][v8.3a] Add missing imp-defs on RETA*. (authored by ab).
[AArch64][v8.3a] Add missing imp-defs on RETA*.
Dec 12 2019, 3:25 PM
ab committed rG9e702b117ff6: [AArch64][v8.3a] Add LDRA '[xN]!' alias. (authored by ab).
[AArch64][v8.3a] Add LDRA '[xN]!' alias.
Dec 12 2019, 3:25 PM

Dec 4 2019

ab accepted D70560: [MIBundle] Remove unused/obsolete MIOperands/ConstMIOperands (NFC)..
Dec 4 2019, 10:39 AM · Restricted Project

Dec 3 2019

ab added inline comments to D70779: AArch64: add support for newer Apple CPUs.
Dec 3 2019, 10:24 AM · Restricted Project
ab accepted D70779: AArch64: add support for newer Apple CPUs.

(but either way, LGTM)

Dec 3 2019, 10:24 AM · Restricted Project

Dec 2 2019

ab added inline comments to D70779: AArch64: add support for newer Apple CPUs.
Dec 2 2019, 12:25 PM · Restricted Project

Nov 13 2019

ab committed rG7313d7d6188a: [AArch64][v8.3a] Add missing imp-defs on RETA*. (authored by ab).
[AArch64][v8.3a] Add missing imp-defs on RETA*.
Nov 13 2019, 10:41 AM
ab committed rG643ac6c0420b: [AArch64][v8.3a] Add LDRA '[xN]!' alias. (authored by ab).
[AArch64][v8.3a] Add LDRA '[xN]!' alias.
Nov 13 2019, 10:41 AM

Apr 8 2019

ab accepted D58636: [BinaryFormat] Update Mach-O ARM64E CPU subtype and dumping.

Sorry for the delay; go ahead, the patch looks OK.

Apr 8 2019, 12:21 PM · Restricted Project

Mar 6 2019

ab added a comment to D58320: [Darwin] Introduce a new flag, -fapple-link-rtlib that forces linking of the builtins library..

Please check the embedded thing (the other comments are minor). Otherwise, LGTM; if you have found this flag to be necessary, this looks like a reasonable way to implement it

Mar 6 2019, 4:07 PM · Restricted Project, Restricted Project
ab added a comment to D58636: [BinaryFormat] Update Mach-O ARM64E CPU subtype and dumping.

Hmm, if I may: what do you want to support? I'd expect Apple to upstream their own patches.

Mar 6 2019, 2:52 PM · Restricted Project

Feb 20 2019

ab added a comment to D58306: [AArch64] Change size suffix for FP16FML intrinsics..

Thanks for checking, much appreciated!

Feb 20 2019, 5:14 PM · Restricted Project, Restricted Project
ab committed rGb26fa705df57: [AArch64] Change size suffix for FP16FML intrinsics. (authored by ab).
[AArch64] Change size suffix for FP16FML intrinsics.
Feb 20 2019, 5:13 PM
ab committed rC354538: [AArch64] Change size suffix for FP16FML intrinsics..
[AArch64] Change size suffix for FP16FML intrinsics.
Feb 20 2019, 5:13 PM
ab committed rL354538: [AArch64] Change size suffix for FP16FML intrinsics..
[AArch64] Change size suffix for FP16FML intrinsics.
Feb 20 2019, 5:13 PM
ab closed D58306: [AArch64] Change size suffix for FP16FML intrinsics..
Feb 20 2019, 5:13 PM · Restricted Project, Restricted Project

Feb 15 2019

ab requested changes to D58232: GlobalISel: Don't materialize immarg arguments to intrinsics.

On second thought, what happens to the tablegen emitter? That needs to be taught about these as well, right? That might not trigger on anything right now though.

Feb 15 2019, 2:39 PM
ab added inline comments to D53633: [AArch64] Implement FP16FML intrinsics.
Feb 15 2019, 2:11 PM · Restricted Project
ab created D58306: [AArch64] Change size suffix for FP16FML intrinsics..
Feb 15 2019, 2:04 PM · Restricted Project, Restricted Project
ab accepted D58232: GlobalISel: Don't materialize immarg arguments to intrinsics.

Nice!

Feb 15 2019, 2:00 PM

Feb 14 2019

Herald added a project to D53633: [AArch64] Implement FP16FML intrinsics: Restricted Project.
Feb 14 2019, 4:30 PM · Restricted Project

Dec 19 2018

ab accepted D55905: Add PLATFORM constants for iOS, tvOS, and watchOS simulators.

Looks good, thanks!

Dec 19 2018, 5:50 PM

Dec 17 2018

ab accepted D55731: [darwin][arm64] use the "cyclone" CPU for Darwin even when `-arch` is not specified.

LGTM, thanks!

Dec 17 2018, 11:04 AM

Oct 3 2018

ab accepted D52761: AArch64: Fix XSeqPairs/WSeqPairs spilling.

LGTM, ty!

Oct 3 2018, 4:23 PM

Jul 31 2018

ab accepted D50068: [AArch64][ARM] Add Armv8.4-A tests.

LGTM, thanks!

Jul 31 2018, 12:51 PM

Jul 26 2018

ab added a comment to D49791: [AArch64] - Generate pointer authentication instructions.

A few minor comments inline, and one question: it sounds like this is based on a GCC feature; what's the expected behavior for __builtin_returnaddress ? Shouldn't it xpaci the result?

Jul 26 2018, 10:41 AM

Jul 19 2018

ab accepted D49524: Avoid generating FGETSIGN for f16.

LGTM. Not the biggest fan of CodeGen/Generic tests, but it gets the job done, I suppose ;) I wouldn't be surprised if it failed on some target that can't even handle half parameters, so you might want to load it instead, put it in x86, or wait and see - your pick.

Jul 19 2018, 1:39 PM

Jun 28 2018

ab committed rCXX335899: [CMake] Rename cxx_headers back to cxx-headers..
[CMake] Rename cxx_headers back to cxx-headers.
Jun 28 2018, 11:40 AM
ab committed rL335899: [CMake] Rename cxx_headers back to cxx-headers..
[CMake] Rename cxx_headers back to cxx-headers.
Jun 28 2018, 11:40 AM
ab closed D48701: [CMake] Rename cxx_headers back to cxx-headers..
Jun 28 2018, 11:40 AM
ab committed rC335898: [CMake] Make bootstrap and compiler-rt depend on cxx-headers..
[CMake] Make bootstrap and compiler-rt depend on cxx-headers.
Jun 28 2018, 11:40 AM
ab committed rL335898: [CMake] Make bootstrap and compiler-rt depend on cxx-headers..
[CMake] Make bootstrap and compiler-rt depend on cxx-headers.
Jun 28 2018, 11:40 AM
ab closed D48700: [CMake] Make bootstrap and compiler-rt depend on cxx-headers..
Jun 28 2018, 11:40 AM

Jun 27 2018

ab created D48701: [CMake] Rename cxx_headers back to cxx-headers..
Jun 27 2018, 9:07 PM
ab created D48700: [CMake] Make bootstrap and compiler-rt depend on cxx-headers..
Jun 27 2018, 9:00 PM

Jun 13 2018

ab committed rCRT334626: [ASAN] Re-enable fgets_fputs test for darwin..
[ASAN] Re-enable fgets_fputs test for darwin.
Jun 13 2018, 10:51 AM
ab committed rL334626: [ASAN] Re-enable fgets_fputs test for darwin..
[ASAN] Re-enable fgets_fputs test for darwin.
Jun 13 2018, 10:51 AM

Jun 12 2018

ab committed rL334566: Revert "Fix how LLVMOPTIONALCOMPONENTS is passed to llvm-build".
Revert "Fix how LLVMOPTIONALCOMPONENTS is passed to llvm-build"
Jun 12 2018, 7:21 PM