Page MenuHomePhabricator

ab (Ahmed Bougacha)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 15 2014, 9:44 AM (348 w, 1 d)

Recent Activity

Tue, May 25

ab updated the diff for D90868: [IR] Define @llvm.ptrauth intrinsics..
Tue, May 25, 2:40 PM · Restricted Project
ab added a comment to D90868: [IR] Define @llvm.ptrauth intrinsics..

Rewrote a good chunk of the document following reviews, responded inline to some. Thanks all for the comments!

Tue, May 25, 2:40 PM · Restricted Project

Wed, May 19

ab added a comment to D100873: [docs] Describe reporting security issues on the chromium tracker..

Thanks all, now landed! I still need to find some time to rewrite the bits about the mailing lists and mention ours.

Wed, May 19, 3:24 PM · Restricted Project
ab committed rGc9dbaa4c86d2: [docs] Describe reporting security issues on the chromium tracker. (authored by ab).
[docs] Describe reporting security issues on the chromium tracker.
Wed, May 19, 3:23 PM
ab closed D100873: [docs] Describe reporting security issues on the chromium tracker..
Wed, May 19, 3:22 PM · Restricted Project

May 17 2021

ab updated the diff for D91087: [AArch64] Select PAC/PACGA for ptrauth.sign/sign_generic..

Rebased, split tests by intrinsic rather than by GISel vs SDAG (since GISel is now always built and we don't need the separate test directory)

May 17 2021, 2:30 PM · Restricted Project

May 11 2021

ab added inline comments to D100142: [compiler-rt][aarch64] Add PAC-RET/BTI support to TSan..
May 11 2021, 10:47 AM
ab accepted D94597: [X86] Lower calls with clang.arc.attachedcall bundle.

Ah sorry, I didn't see you tried that already! I don't think we want to weaken the verifier check, this is probably the only case where it makes sense to take the address. I guess we've meandered through the same decision process, thanks for the patience ;) But it might be worth explaining these decisions in the commit message. Also in the langref paragraph for the bundle, it says the call is always emitted for the bundle.
Which brings another idea: how about emitting the call when lowering the bundle on AArch64 as well? There's not much room for better regalloc or other optimizations in the sequence anyway, right?

May 11 2021, 10:12 AM · Restricted Project

May 3 2021

ab added a comment to D100873: [docs] Describe reporting security issues on the chromium tracker..

Thanks for the comments! Tweaks inline

May 3 2021, 1:44 PM · Restricted Project
ab updated the diff for D100873: [docs] Describe reporting security issues on the chromium tracker..
  • mention public discussions on lists/in sync-up, link to sync-up page
  • describe Github workflow as potentially useful for publicly disclosing resolved issues
May 3 2021, 1:40 PM · Restricted Project

Apr 27 2021

ab added a comment to D100864: Replace Apple representative to security group..

Thanks all! I'll add Kate to the group and issue tracker.

Apr 27 2021, 11:02 AM · Restricted Project
ab committed rG6a2e29851738: [docs] Replace Apple representative to security group. (authored by ab).
[docs] Replace Apple representative to security group.
Apr 27 2021, 11:01 AM
ab closed D100864: Replace Apple representative to security group..
Apr 27 2021, 11:01 AM · Restricted Project
ab added a comment to D94597: [X86] Lower calls with clang.arc.attachedcall bundle.

Unfortunately the ObjC runtime matches different sequences on AArc64 and X86. This is documented here https://github.com/opensource-apple/objc4/blob/master/runtime/objc-object.h#L974

On AArch64, the callee only checks for mov x29, x29 in the caller and the position of the claim/autorelease runtime call does not matter, which makes things much simpler. On X86_64, it specifically looks for the marker instructions, immediately followed by the runtime call. So we want to make sure that it is very hard to break up this specific sequence, to avoid missing out on the runtime optimization.

Apr 27 2021, 10:42 AM · Restricted Project

Apr 26 2021

ab accepted D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

Neat, thanks!

Apr 26 2021, 10:46 AM · Restricted Project

Apr 20 2021

ab added a comment to D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

This sounds nice! One idea, maybe more dangerous, not sure which is better: in setTripleTypeForMachOArchName, we already have a couple setArchName calls, I think that's why arm64e is left alone in the aarch64-cpus.c test. Maybe we can do the setArchName call for every arch there?

Apr 20 2021, 12:33 PM · Restricted Project
ab requested review of D100873: [docs] Describe reporting security issues on the chromium tracker..
Apr 20 2021, 10:56 AM · Restricted Project
ab requested review of D100864: Replace Apple representative to security group..
Apr 20 2021, 9:23 AM · Restricted Project
ab committed rGa0573b6c1003: [AArch64] Bump apple-latest CPU alias to apple-a14. (authored by ab).
[AArch64] Bump apple-latest CPU alias to apple-a14.
Apr 20 2021, 8:42 AM
ab committed rGcedb5b06df1b: [AArch64] Don't always override CPU for arm64e. (authored by ab).
[AArch64] Don't always override CPU for arm64e.
Apr 20 2021, 8:42 AM
ab committed rGa8a3a4379247: [AArch64] Add apple-m1 CPU, and default to it for macOS. (authored by ab).
[AArch64] Add apple-m1 CPU, and default to it for macOS.
Apr 20 2021, 8:42 AM

Apr 12 2021

ab added a reverting change for rG3842de49f655: [lldb] [gdb-remote client] Refactor handling qSupported: rG6c4f2508e427: Revert "[lldb] [gdb-remote client] Refactor handling qSupported".
Apr 12 2021, 6:06 PM
ab committed rG6c4f2508e427: Revert "[lldb] [gdb-remote client] Refactor handling qSupported" (authored by ab).
Revert "[lldb] [gdb-remote client] Refactor handling qSupported"
Apr 12 2021, 6:06 PM
ab added a reverting change for D100146: [lldb] [gdb-remote client] Refactor handling qSupported: rG6c4f2508e427: Revert "[lldb] [gdb-remote client] Refactor handling qSupported".
Apr 12 2021, 6:06 PM · Restricted Project

Mar 25 2021

ab accepted D99232: [Nomination] Adding new Google representative to security group.

Thanks George, and welcome!

Mar 25 2021, 11:22 AM · Restricted Project

Mar 17 2021

ab added a comment to D94597: [X86] Lower calls with clang.arc.attachedcall bundle.

Can you (or @ahatanak) explain why/how this needs to be different from aarch64? In particular I don't think I understand why you need to emit the retainARV/claimARV calls this late, that seems like quite a drastic difference in behavior for the bundle.
I read through the discussion in D92808 but it sounds like that predates the x86_64-specific behavior, right? But skimming around the various passes involved I'm not actually sure who emits the retainARV/claimARV calls on aarch64.

Mar 17 2021, 1:33 PM · Restricted Project
ab accepted D98739: [Object][MachO] Handle end iterator in getSymbolType().
Mar 17 2021, 12:36 PM · Restricted Project

Jan 26 2021

ab accepted D85126: AArch64: use a constpool for blockaddress(...) on MachO.
Jan 26 2021, 9:57 AM · Restricted Project

Dec 3 2020

ab added a comment to D87095: [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth..

Thanks Tim! f77c948d56b

Dec 3 2020, 7:55 AM · Restricted Project, Restricted Project
ab committed rGf77c948d56b0: [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth. (authored by ab).
[Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth.
Dec 3 2020, 7:55 AM
ab closed D87095: [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth..
Dec 3 2020, 7:54 AM · Restricted Project, Restricted Project

Nov 9 2020

ab requested review of D91087: [AArch64] Select PAC/PACGA for ptrauth.sign/sign_generic..
Nov 9 2020, 8:55 AM · Restricted Project

Nov 5 2020

ab requested review of D90868: [IR] Define @llvm.ptrauth intrinsics..
Nov 5 2020, 10:47 AM · Restricted Project

Oct 14 2020

ab accepted D89287: Adding new Azul representative to security group.

No objection here (but let's leave a few more days, per process)*. Thanks Artur, and thanks @reames for helping get the group going!

Oct 14 2020, 11:37 AM · Restricted Project

Sep 17 2020

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

Reformat ValidArchs.

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

Sep 3 2020

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.

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

Sep 1 2020

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 =]

Sep 1 2020, 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