Page MenuHomePhabricator

ab (Ahmed Bougacha)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Thu, Jan 9

ab committed rG1c6ddedf949d: [AArch64] Adopt upstream ldraa syntax revert. NFC. (authored by ab).
[AArch64] Adopt upstream ldraa syntax revert. NFC.
Thu, Jan 9, 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.
Thu, Jan 9, 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…
Thu, Jan 9, 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…
Thu, Jan 9, 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!

Thu, Jan 9, 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
ab committed rC334550: [CMake][Darwin] Match cxx-headers -> cxx_headers libcxx target rename..
[CMake][Darwin] Match cxx-headers -> cxx_headers libcxx target rename.
Jun 12 2018, 2:32 PM
ab committed rL334550: [CMake][Darwin] Match cxx-headers -> cxx_headers libcxx target rename..
[CMake][Darwin] Match cxx-headers -> cxx_headers libcxx target rename.
Jun 12 2018, 2:32 PM

Jun 10 2018

ab committed rL334369: [debuginfo-tests] Always use the system python to invoke llgdb.py..
[debuginfo-tests] Always use the system python to invoke llgdb.py.
Jun 10 2018, 12:43 PM
ab closed D47967: [debuginfo-tests] Always use the system python to invoke llgdb.py..
Jun 10 2018, 12:42 PM

Jun 8 2018

ab added a comment to D47967: [debuginfo-tests] Always use the system python to invoke llgdb.py..

Precisely: /usr/bin/env is recommended as a cross-platform way to find python. But:

  • we're only using lldb on darwin, where we know python (or at least, the xcrun-style shortcut) is in /usr/bin/
  • the python interpreter in LLDB comes from /S/L/F, for instance:
Jun 8 2018, 6:36 PM
ab created D47967: [debuginfo-tests] Always use the system python to invoke llgdb.py..
Jun 8 2018, 5:24 PM

May 8 2018

ab added inline comments to D46310: [AArch64] Disallow vector operand if FPR128 Q register is required..
May 8 2018, 2:39 PM

May 4 2018

ab added a reviewer for D46396: Optionally simplify basic blocks introduced by AtomicExpandPass: t.p.northover.
May 4 2018, 11:42 AM
ab added a comment to D46042: Cap vector alignment at 16 for all Darwin platforms.

So, this makes sense to me, but on x86, should we also be worried about the fact that the calling convention is based on which features are available? (>128bit ext_vector_types are passed in AVX/AVX-512 registers, if available). Presumably swift is also affected, no?

May 4 2018, 10:46 AM

Jan 4 2018

ab accepted D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre...

Clang/LLVM pieces LGTM. Thanks for doing this, people.

Jan 4 2018, 5:00 PM

Dec 9 2017

ab committed rCRT320284: Update another sanitizer test for C++14..
Update another sanitizer test for C++14.
Dec 9 2017, 9:51 PM
ab committed rL320284: Update another sanitizer test for C++14..
Update another sanitizer test for C++14.
Dec 9 2017, 9:51 PM

Dec 7 2017

ab committed rC320114: Fix more line endings changed in r320089. NFC..
Fix more line endings changed in r320089. NFC.
Dec 7 2017, 3:09 PM