Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

ab (Ahmed Bougacha)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 15 2014, 9:44 AM (467 w, 2 d)

Recent Activity

Mon, Sep 11

ab abandoned D112941: [clang] Add support for the new pointer authentication builtins..

This went through so many rebases that the incremental diff is not very helpful ;) Let's start over on github: https://github.com/llvm/llvm-project/pull/65996

Mon, Sep 11, 11:54 AM · Restricted Project, Restricted Project, Restricted Project
ab updated the diff for D112941: [clang] Add support for the new pointer authentication builtins..

Added the relevant bits of the great documentation John wrote in clang/docs/PointerAuthentication.rst. I tried to trim it down to only the general principles and the intrinsics; some of the discussion around the security model is a little ahead of the rest of the changes, but is still seems fine with these initial changes.

Mon, Sep 11, 9:41 AM · Restricted Project, Restricted Project, Restricted Project

Jul 28 2023

ab added a comment to D156358: [AArch64] Do not unnecessarily spill LR because of @llvm.returnaddress.

We tried to address this problem by adding an XPACIuntied pseudo, only selecting that instead of the real instruction, and later (after regalloc, which is now unburdened by the tied nature of XPAC, like you're discussing) expanding it to add the mov if necessary:

Jul 28 2023, 2:02 PM · Restricted Project, Restricted Project

Jun 26 2023

ab committed rGb3272f5ddbfd: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic. (authored by ab).
[AArch64][PAC] Select MOVK for ptrauth.blend intrinsic.
Jun 26 2023, 9:44 AM · Restricted Project, Restricted Project
ab closed D132384: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic..
Jun 26 2023, 9:44 AM · Restricted Project, Restricted Project

Jun 23 2023

ab accepted D147457: [Reassociation] Only form CSE expressions for local operands.
Jun 23 2023, 3:17 PM · Restricted Project, Restricted Project

Jun 22 2023

ab added inline comments to D147457: [Reassociation] Only form CSE expressions for local operands.
Jun 22 2023, 3:00 PM · Restricted Project, Restricted Project

Jun 10 2023

ab added a comment to D152620: [IR] Define llvm.ptrauth wrapper globals.

Please don’t. I’ll send out updated patches.

Jun 10 2023, 3:43 PM · Restricted Project, Restricted Project
ab added a comment to D132384: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic..

I am planning to land this patch the next week, if there will be no objections.

Jun 10 2023, 3:42 PM · Restricted Project, Restricted Project

Apr 25 2023

ab accepted D148967: Disable atexit()-based lowering when LTO'ing kernel/kext code.

A comment inline, but LGTM otherwise, thanks!

Apr 25 2023, 11:28 AM · Restricted Project, Restricted Project, Restricted Project

Feb 28 2023

ab accepted D144585: [Nomination] Adding Nvidia Compiler security representative to the LLVM security group..
Feb 28 2023, 12:01 PM · Restricted Project, Restricted Project

Feb 21 2023

ab added a reviewer for D96004: [AArch64] Stack probing for function prologues: aemerson.
Feb 21 2023, 11:13 AM · Restricted Project, Restricted Project
ab added a reviewer for D96006: [AArch64] Stack probing for dynamic allocas in GlobalISel: aemerson.
Feb 21 2023, 11:13 AM · Restricted Project, Restricted Project
ab added a reviewer for D96005: [AArch64] Stack probing for dynamic allocas in SelectionDAG: aemerson.
Feb 21 2023, 11:13 AM · Restricted Project, Restricted Project
ab added a reviewer for D96007: [AArch64] Enable stack clash protection for AArch64 linux in clang: aemerson.
Feb 21 2023, 11:13 AM · Restricted Project, Restricted Project

Dec 8 2022

ab accepted D136999: [AArch64] Lower READCYCLECOUNTER using MRS CNTVCT_EL0.

This makes sense, thanks for checking! I'll have a closer look on my side and follow-up if needed

Dec 8 2022, 9:12 AM · Restricted Project, Restricted Project
ab accepted D137557: [PtrAuth] Use default attributes for some ptrauth intrinsics.

Sorry for the delay; LGTM, thanks!

Dec 8 2022, 9:01 AM · Restricted Project, Restricted Project

Oct 24 2022

ab added inline comments to D132384: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic..
Oct 24 2022, 8:34 AM · Restricted Project, Restricted Project
ab updated the diff for D132384: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic..
Oct 24 2022, 8:34 AM · Restricted Project, Restricted Project
ab committed rG718bb22c2806: [AArch64][PAC] Select XPAC for ptrauth.strip intrinsic. (authored by ab).
[AArch64][PAC] Select XPAC for ptrauth.strip intrinsic.
Oct 24 2022, 8:16 AM · Restricted Project, Restricted Project
ab committed rG5b7000197468: [AArch64][PAC] Add helper enum/functions to handle PAC keys/ops. (authored by ab).
[AArch64][PAC] Add helper enum/functions to handle PAC keys/ops.
Oct 24 2022, 8:16 AM · Restricted Project, Restricted Project
ab closed D132385: [AArch64][PAC] Select XPAC for ptrauth.strip intrinsic..
Oct 24 2022, 8:16 AM · Restricted Project, Restricted Project
ab committed rGbddd9b6b91ae: [InstCombine] Combine ptrauth sign/resign + auth/resign intrinsics. (authored by ab).
[InstCombine] Combine ptrauth sign/resign + auth/resign intrinsics.
Oct 24 2022, 8:04 AM · Restricted Project, Restricted Project
ab closed D132383: [InstCombine] Combine ptrauth sign/resign + auth/resign intrinsics..
Oct 24 2022, 8:03 AM · Restricted Project, Restricted Project

Oct 20 2022

ab added a comment to D134999: AArch64: PAC: Do not attempt ICP on authenticating calls..

To make sure I follow: would it make sense to have the legality check compare the ptrauth bits, and if they match, remove the bundle and promote? We'd have to pass the pointer (not the Function) around. And I don't see how we'd get a signed pointer in the SampleProfile case, so we wouldn't promote there anyway (without a much more interesting target check at least?) But it seems like the other users would generate a direct ptrauth-bundle call to ptrauth-signed target; InstCombine should handle that.

Oct 20 2022, 6:58 AM · Restricted Project, Restricted Project

Sep 26 2022

ab added a comment to D134658: Fix -mcpu=native on non-macos Apple platforms.

Apple revealed:

#define CPUFAMILY_ARM_BLIZZARD_AVALANCHE 0xda33d83d

link?

I didn't see it in https://opensource.apple.com/source/xnu/xnu-7195.81.3/osfmk/mach/machine.h.auto.html

Sep 26 2022, 1:35 PM · Restricted Project, Restricted Project

Sep 21 2022

ab accepted D134351: AArch64: add definitions for recent Apple CPUs.

but in AArch64TargetParser.def, marking them v8.6 brings in support for the SM4 cryptographic hash and we don't actually have that

Sep 21 2022, 10:55 AM · Restricted Project, Restricted Project, Restricted Project
Herald added a project to D76062: [PATCH] [ARM] ARMv8.6-a command-line + BFloat16 Asm Support: Restricted Project.
Sep 21 2022, 10:53 AM · Restricted Project, Restricted Project, Restricted Project

Aug 30 2022

ab added inline comments to D132386: [AArch64][PAC] Lower auth/resign into checked sequence..
Aug 30 2022, 2:06 PM · Restricted Project, Restricted Project
ab added inline comments to D132383: [InstCombine] Combine ptrauth sign/resign + auth/resign intrinsics..
Aug 30 2022, 1:31 PM · Restricted Project, Restricted Project
ab updated the diff for D132383: [InstCombine] Combine ptrauth sign/resign + auth/resign intrinsics..
  • add test for resign+auth -> auth
Aug 30 2022, 1:30 PM · Restricted Project, Restricted Project
ab added inline comments to D132384: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic..
Aug 30 2022, 1:29 PM · Restricted Project, Restricted Project
ab updated the diff for D132384: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic..
  • further constrain GISel immediate blends to fail if wider than 16 bits
Aug 30 2022, 1:27 PM · Restricted Project, Restricted Project
ab added inline comments to D132385: [AArch64][PAC] Select XPAC for ptrauth.strip intrinsic..
Aug 30 2022, 1:21 PM · Restricted Project, Restricted Project
ab updated the diff for D132385: [AArch64][PAC] Select XPAC for ptrauth.strip intrinsic..
  • Extract out XPACIuntied, leaving it for ptrauth-returns.
  • Pull in key/opcode helper functions from later patch in the series.
Aug 30 2022, 1:18 PM · Restricted Project, Restricted Project

Aug 22 2022

ab added a reviewer for D132383: [InstCombine] Combine ptrauth sign/resign + auth/resign intrinsics.: t.p.northover.
Aug 22 2022, 10:58 AM · Restricted Project, Restricted Project
ab added reviewers for D132383: [InstCombine] Combine ptrauth sign/resign + auth/resign intrinsics.: pcc, psmith, kristof.beyls.
Aug 22 2022, 10:52 AM · Restricted Project, Restricted Project
ab added reviewers for D132384: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic.: pcc, psmith, kristof.beyls, t.p.northover.
Aug 22 2022, 10:52 AM · Restricted Project, Restricted Project
ab added reviewers for D132385: [AArch64][PAC] Select XPAC for ptrauth.strip intrinsic.: pcc, psmith, kristof.beyls, t.p.northover.
Aug 22 2022, 10:52 AM · Restricted Project, Restricted Project
ab added reviewers for D132386: [AArch64][PAC] Lower auth/resign into checked sequence.: kristof.beyls, psmith, pcc, t.p.northover.
Aug 22 2022, 10:52 AM · Restricted Project, Restricted Project
ab requested review of D132386: [AArch64][PAC] Lower auth/resign into checked sequence..
Aug 22 2022, 9:02 AM · Restricted Project, Restricted Project
ab requested review of D132385: [AArch64][PAC] Select XPAC for ptrauth.strip intrinsic..
Aug 22 2022, 8:56 AM · Restricted Project, Restricted Project
ab requested review of D132384: [AArch64][PAC] Select MOVK for ptrauth.blend intrinsic..
Aug 22 2022, 8:56 AM · Restricted Project, Restricted Project
ab requested review of D132383: [InstCombine] Combine ptrauth sign/resign + auth/resign intrinsics..
Aug 22 2022, 8:55 AM · Restricted Project, Restricted Project

Jun 9 2022

ab added a comment to D126505: [AArch64][SVE] Don't crash on pre-legalized types in extload combine..

Yep, committed c68b469e0788, thanks!

Jun 9 2022, 10:33 AM · Restricted Project, Restricted Project
ab committed rGc68b469e0788: [AArch64][SVE] Don't crash on pre-legalizer types in extload combine. (authored by ab).
[AArch64][SVE] Don't crash on pre-legalizer types in extload combine.
Jun 9 2022, 10:33 AM · Restricted Project, Restricted Project
ab closed D126505: [AArch64][SVE] Don't crash on pre-legalized types in extload combine..
Jun 9 2022, 10:33 AM · Restricted Project, Restricted Project

May 26 2022

ab requested review of D126505: [AArch64][SVE] Don't crash on pre-legalized types in extload combine..
May 26 2022, 3:06 PM · Restricted Project, Restricted Project

May 20 2022

ab committed rG362b4066f0c6: [ObjCARC] Drop nullary clang.arc.attachedcall bundles in autoupgrade. (authored by ab).
[ObjCARC] Drop nullary clang.arc.attachedcall bundles in autoupgrade.
May 20 2022, 3:28 PM · Restricted Project, Restricted Project
ab closed D123811: [ObjCARC] Drop nullary clang.arc.attachedcall bundles in autoupgrade..
May 20 2022, 3:27 PM · Restricted Project, Restricted Project

May 11 2022

Herald added a project to D119432: [FastISel] Reuse register for bitcast that does not change MVT: Restricted Project.

Hi @nikic, I may have hit an issue with this change: when the noop-bitcast result is already used in other (potentially already selected) blocks, we already assigned a vreg for the value, and it may be too late to change it when selecting this bitcast. Concretely, this repro fails for x86_64 with -verify-machineinstrs, because the second use of %tmp1 uses a never-defined vreg:

May 11 2022, 12:44 PM · Restricted Project, Restricted Project

Apr 20 2022

ab accepted D119137: Replace Steve Klabnik with Josh Stone as one of the Rust Security Response WG representatives.
Apr 20 2022, 10:50 AM · Restricted Project, Restricted Project

Apr 14 2022

ab requested review of D123811: [ObjCARC] Drop nullary clang.arc.attachedcall bundles in autoupgrade..
Apr 14 2022, 12:28 PM · Restricted Project, Restricted Project
ab added a comment to D118214: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle..

Sure, filed 54914 to cherry-pick into 14.0.2

Apr 14 2022, 11:09 AM · Restricted Project, Restricted Project

Apr 12 2022

ab added a comment to D118214: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle..

D'oh, this fell through the cracks, sorry folks! I committed the fix I had in mind (cfa4fe7c5187). Long story short: this change exposed an old bug in the LOH pass: it wasn't honoring regmasks in bundled MIs, but since we used to split the bundle and emit the attached call separately, the (unbundled) latter was still visible to the pass. That's not true as of this change. I think for the sort of code that uses bundles on aarch64 it's usually selectors that get corrupted in a later msgSend, and that ends up exploding in dyld the way we're seeing in both cases.

Apr 12 2022, 10:41 AM · Restricted Project, Restricted Project
ab committed rGcfa4fe7c5187: [AArch64][LOH] Don't ignore regmasks in bundles by iterating over instrs. (authored by ab).
[AArch64][LOH] Don't ignore regmasks in bundles by iterating over instrs.
Apr 12 2022, 10:35 AM · Restricted Project, Restricted Project
ab committed rGf3e76dcae3dc: [AArch64] Cleanup call-rv-marker.ll test. NFC. (authored by ab).
[AArch64] Cleanup call-rv-marker.ll test. NFC.
Apr 12 2022, 10:35 AM · Restricted Project, Restricted Project

Mar 23 2022

ab accepted D119788: [AArch64] Add support for -march=native for Apple M1 CPU.

Reading this again, I have a feeling defaulting to newest will come back to bite us (or, well, apple folks.) But we can reevaluate if we get to that. So, LGTM, thanks!

Mar 23 2022, 1:11 PM · Restricted Project, Restricted Project, Restricted Project
ab accepted D122274: [AArch64] Fix AArch64TargetParser.def to match AArch64.td..

The apple-* bits LGTM, thanks! @pcc caught a couple more in rGa8a3a43792, I still need to go over those as well

Mar 23 2022, 1:04 PM · Restricted Project, Restricted Project
ab added a comment to D118214: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle..

Ah, further down, there's a different crash signature in bisect6.txt, in dyld strlen: that one does ring a bell. I assume it's handling a corrupt selector, but there's not much context to know for sure. I have a later change that may take care of that, hopefully that resolves your original crash as well!

Mar 23 2022, 12:06 PM · Restricted Project, Restricted Project
ab added a comment to D118214: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle..

@ab We started seeing crashes in Flutter Engine on iOS after the latest Clang roll. We did a bisect and found this change to be a culprit, see https://github.com/flutter/flutter/issues/99488 for more details. Would it be possible to take a look?

Mar 23 2022, 11:55 AM · Restricted Project, Restricted Project

Mar 9 2022

ab committed rG89c94c242c7d: [clang][Driver] Get darwin -Xarch_ working for subtypes, again. (authored by ab).
[clang][Driver] Get darwin -Xarch_ working for subtypes, again.
Mar 9 2022, 6:23 PM · Restricted Project

Mar 7 2022

ab added a comment to D119594: [sancov] Don't instrument calls to bitcast funcs: they're not indirect..

Thanks!

Mar 7 2022, 12:44 PM · Restricted Project, Restricted Project
ab committed rG1067f2177aa6: [sancov] Don't instrument calls to bitcast funcs: they're not indirect. (authored by ab).
[sancov] Don't instrument calls to bitcast funcs: they're not indirect.
Mar 7 2022, 12:44 PM · Restricted Project
ab closed D119594: [sancov] Don't instrument calls to bitcast funcs: they're not indirect..
Mar 7 2022, 12:44 PM · Restricted Project, Restricted Project

Mar 2 2022

ab added a comment to D120455: [CommandLine] Remove `may only occur zero or one times!` error.

I don't have a strong opinion; IMO -mllvm options shouldn't get used (except by compiler developers) since they're unstable, although I'm sure they get used a little anyway. IMO, if this makes it easier for the intended users (compiler developers) then there isn't a real downside to it.

@ab @t.p.northover @Gerolf , any thoughts from you?

Mar 2 2022, 1:43 PM · Restricted Project, Restricted Project, Restricted Project

Feb 18 2022

ab added inline comments to rGa8a3a4379247: [AArch64] Add apple-m1 CPU, and default to it for macOS..
Feb 18 2022, 7:36 PM
ab added a comment to D119788: [AArch64] Add support for -march=native for Apple M1 CPU.

Thanks for the tips! I left the default as generic here, but I totally take your point on defaulting to the newest and I'm happy to update if you feel strongly, lmk what you think

Feb 18 2022, 3:04 PM · Restricted Project, Restricted Project, Restricted Project
ab committed rGdeb73a285b92: [AArch64][GlobalISel] Constrain the right MOs when lowering calls. (authored by ab).
[AArch64][GlobalISel] Constrain the right MOs when lowering calls.
Feb 18 2022, 1:53 PM
ab closed D120161: [AArch64][GlobalISel] Constrain the right MOs when lowering calls..
Feb 18 2022, 1:53 PM · Restricted Project
ab requested review of D120161: [AArch64][GlobalISel] Constrain the right MOs when lowering calls..
Feb 18 2022, 1:16 PM · Restricted Project

Feb 14 2022

ab added a comment to D113685: [IR] Define "ptrauth" operand bundle..

I committed a modified description, happy to make more changes:

Feb 14 2022, 11:37 AM · Restricted Project
ab committed rGc703f852c9dc: [IR] Define "ptrauth" operand bundle. (authored by ab).
[IR] Define "ptrauth" operand bundle.
Feb 14 2022, 11:28 AM
ab closed D113685: [IR] Define "ptrauth" operand bundle..
Feb 14 2022, 11:27 AM · Restricted Project

Feb 11 2022

ab accepted D119572: Add virtual mem size when setting RSS limit on Apple platforms..
Feb 11 2022, 3:07 PM
ab added inline comments to D119572: Add virtual mem size when setting RSS limit on Apple platforms..
Feb 11 2022, 2:50 PM
ab requested review of D119594: [sancov] Don't instrument calls to bitcast funcs: they're not indirect..
Feb 11 2022, 2:06 PM · Restricted Project, Restricted Project

Feb 8 2022

ab committed rGca9f0ec1a30b: [clang] Document objc_unsafeClaimAutoreleasedReturnValue. (authored by ab).
[clang] Document objc_unsafeClaimAutoreleasedReturnValue.
Feb 8 2022, 2:31 PM
ab committed rG6ba68a5fc342: [clang][Driver] Use a VersionTuple for darwin linker version checks. (authored by ab).
[clang][Driver] Use a VersionTuple for darwin linker version checks.
Feb 8 2022, 2:30 PM

Jan 28 2022

ab committed rG634ca7349d4a: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle. (authored by ab).
[ObjCARC] Require the function argument in the clang.arc.attachedcall bundle.
Jan 28 2022, 12:42 PM
ab closed D118214: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle..
Jan 28 2022, 12:42 PM · Restricted Project, Restricted Project
ab added a comment to D118214: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle..

Are there any users who need the changes in autoupgrade? clang.arc.attachedcall bundles without operands are emitted only after ARC contract (ARC optimizer does't remove the operand), so it seems safe not to upgrade the IR.

Jan 28 2022, 11:49 AM · Restricted Project, Restricted Project

Jan 26 2022

ab committed rGecb502342cf2: [ObjC] Emit selector load right before msgSend call. (authored by ab).
[ObjC] Emit selector load right before msgSend call.
Jan 26 2022, 8:53 PM

Jan 25 2022

ab updated the summary of D118214: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle..
Jan 25 2022, 9:01 PM · Restricted Project, Restricted Project
ab requested review of D118214: [ObjCARC] Require the function argument in the clang.arc.attachedcall bundle..
Jan 25 2022, 9:00 PM · Restricted Project, Restricted Project

Jan 24 2022

ab committed rGe7298464c5d0: [ObjCARC] Use "UnsafeClaimRV" to refer to unsafeClaim in enums. NFC. (authored by ab).
[ObjCARC] Use "UnsafeClaimRV" to refer to unsafeClaim in enums. NFC.
Jan 24 2022, 7:37 PM
ab committed rG03e9ba274072: [ObjCARC] Remove unused RetainRVDep dependency kind. NFC. (authored by ab).
[ObjCARC] Remove unused RetainRVDep dependency kind. NFC.
Jan 24 2022, 7:37 PM
ab accepted D117782: [AArch64] Removing redundant PAuth flag.

Same, makes sense, thanks!

Jan 24 2022, 5:18 PM · Restricted Project

Jan 18 2022

ab added inline comments to D105169: [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default.
Jan 18 2022, 2:02 PM · Restricted Project, Restricted Project

Dec 13 2021

ab accepted D114906: [MemoryLocation] Handle memset_pattern{4,8,16} in getForDest..
Dec 13 2021, 12:37 PM · Restricted Project

Dec 8 2021

ab accepted D114905: [MemoryLocation] Support memset_pattern{4,8} in getForArgument..
Dec 8 2021, 10:23 AM · Restricted Project

Dec 1 2021

ab accepted D114883: [BuildLibCalls] Add support for memset_pattern{4,8}..

Quite the old TODO, nice ;) LGTM!

Dec 1 2021, 10:24 AM · Restricted Project
ab accepted D114881: [TLI] Add memset_pattern4, memset_pattern8 lib functions..

Makes sense, LGTM!

Dec 1 2021, 10:22 AM · Restricted Project

Nov 18 2021

ab committed rGe3a7f0e2f9ab: [AArch64][PAC] Select llvm.ptrauth.sign/sign.generic to PAC*. (authored by ab).
[AArch64][PAC] Select llvm.ptrauth.sign/sign.generic to PAC*.
Nov 18 2021, 3:22 PM
ab closed D91087: [AArch64] Select PAC/PACGA for ptrauth.sign/sign_generic..
Nov 18 2021, 3:22 PM · Restricted Project

Nov 14 2021

ab added a comment to D90868: [IR] Define @llvm.ptrauth intrinsics..

Thanks all for the reviews! 68854f4e572a

Nov 14 2021, 8:06 AM · Restricted Project
ab committed rG68854f4e572a: [IR] Define ptrauth intrinsics. (authored by ab).
[IR] Define ptrauth intrinsics.
Nov 14 2021, 8:06 AM
ab closed D90868: [IR] Define @llvm.ptrauth intrinsics..
Nov 14 2021, 8:05 AM · Restricted Project

Nov 11 2021

ab requested review of D113685: [IR] Define "ptrauth" operand bundle..
Nov 11 2021, 9:08 AM · Restricted Project
ab added a comment to D90868: [IR] Define @llvm.ptrauth intrinsics..

Hey folks! Any more comments?

Nov 11 2021, 9:01 AM · Restricted Project