Page MenuHomePhabricator

pbarrio (Pablo Barrio)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 15 2015, 3:04 AM (438 w, 11 h)

Recent Activity

Jan 11 2023

pbarrio added a comment to D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

You are right, yes, the implicit landing pad in PACIxSP is configurable through SCTRL_EL1.BT0. It can behave either as BTI c or BTI jc. Since the value of a sysreg is not known at compile time, I took the safe approach here and assumed that PACIxSP could allow all kinds of jumps and therefore they would be unsafe: better have an explicit BTI c than an implicit BTI jc.

Jan 11 2023, 2:57 AM · Restricted Project, Restricted Project

Jan 20 2022

pbarrio accepted D116221: [AArch64][ARM][Clang] Unaligned Access Warning Added.

LGTM too.

Jan 20 2022, 4:44 AM · Restricted Project, Restricted Project

Dec 23 2021

pbarrio requested changes to D116221: [AArch64][ARM][Clang] Unaligned Access Warning Added.

Suggest clarifying the commit message to something like:

Dec 23 2021, 9:48 AM · Restricted Project, Restricted Project

Aug 26 2021

pbarrio added a reviewer for D90868: [IR] Define @llvm.ptrauth intrinsics.: pbarrio.
Aug 26 2021, 3:42 AM · Restricted Project

Jul 30 2021

pbarrio added inline comments to D90868: [IR] Define @llvm.ptrauth intrinsics..
Jul 30 2021, 3:41 AM · Restricted Project
pbarrio added inline comments to D90868: [IR] Define @llvm.ptrauth intrinsics..
Jul 30 2021, 3:37 AM · Restricted Project

Jul 27 2021

pbarrio added inline comments to D100142: [compiler-rt][aarch64] Add PAC-RET/BTI support to TSan..
Jul 27 2021, 9:39 AM

Jun 24 2021

pbarrio committed rG571c8c5263a7: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP) (authored by pbarrio).
[AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP)
Jun 24 2021, 10:25 AM
pbarrio closed D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).
Jun 24 2021, 10:25 AM · Restricted Project, Restricted Project

Jun 21 2021

pbarrio added a comment to D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

I'll leave the review open for a couple of days in case anyone sees a problem with the additional .addReg(AArch64::LR), otherwise I'll commit.

Jun 21 2021, 9:19 AM · Restricted Project, Restricted Project
pbarrio updated the diff for D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

The following commit added a register in the definition of the PAC instructions:

Jun 21 2021, 9:16 AM · Restricted Project, Restricted Project

Jun 16 2021

pbarrio added inline comments to D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).
Jun 16 2021, 9:34 AM · Restricted Project, Restricted Project
pbarrio updated the diff for D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

@efriedma thank you for the review. Commit updated without the special outlining handling.

Jun 16 2021, 9:31 AM · Restricted Project, Restricted Project

Jun 15 2021

pbarrio edited reviewers for D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP), added: efriedma; removed: eli.friedman.
Jun 15 2021, 6:45 AM · Restricted Project, Restricted Project

Jun 10 2021

pbarrio added a comment to D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

Ping

Jun 10 2021, 6:48 AM · Restricted Project, Restricted Project

Jun 3 2021

pbarrio added reviewers for D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP): apazos, eli.friedman.
Jun 3 2021, 3:55 AM · Restricted Project, Restricted Project

Jun 1 2021

pbarrio added a comment to D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

Ping

Jun 1 2021, 2:57 AM · Restricted Project, Restricted Project

May 24 2021

pbarrio added a comment to D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

All comments addressed (thank you @danielkiss). Does it look reasonable now?

May 24 2021, 1:39 AM · Restricted Project, Restricted Project

May 13 2021

pbarrio updated the diff for D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

Updated PAC handling in the outliner. Now all outlined functions should use v8.3a instructions where possible.

May 13 2021, 5:43 AM · Restricted Project, Restricted Project
pbarrio added a reviewer for D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP): ab.
May 13 2021, 5:41 AM · Restricted Project, Restricted Project

May 11 2021

pbarrio updated the diff for D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).

Added handling of outlining for PACI* similarly to PACI*SP etc, and RegState info to SP.

May 11 2021, 5:35 AM · Restricted Project, Restricted Project

May 5 2021

pbarrio requested review of D101920: [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP).
May 5 2021, 9:26 AM · Restricted Project, Restricted Project

Apr 14 2021

pbarrio committed rGcca40aa8d8aa: [AArch64][v8.5A] Add BTI to all function starts (authored by pbarrio).
[AArch64][v8.5A] Add BTI to all function starts
Apr 14 2021, 7:24 AM
pbarrio closed D99417: [AArch64][v8.5A] Add BTI to all function starts.
Apr 14 2021, 7:24 AM · Restricted Project

Apr 13 2021

pbarrio added reviewers for D99417: [AArch64][v8.5A] Add BTI to all function starts: danielkiss, tamas.petz.
Apr 13 2021, 6:28 AM · Restricted Project

Apr 9 2021

pbarrio added a comment to D99417: [AArch64][v8.5A] Add BTI to all function starts.

Sure thing, thank you for the review. @MaskRay please let me know if you want to further discuss the changes to the patchable-function-entry test, otherwise I will commit this sometime next week.

Apr 9 2021, 2:39 AM · Restricted Project

Apr 7 2021

pbarrio added a comment to D99417: [AArch64][v8.5A] Add BTI to all function starts.

Ping.

Apr 7 2021, 2:27 AM · Restricted Project

Mar 30 2021

pbarrio added a comment to D99417: [AArch64][v8.5A] Add BTI to all function starts.

For patchable functions are there any other cases where we wouldn't generate a BTI at the start of the function? If there is we may be alter the test so that it is still checking that the nop is still inserted. If there is no way to avoid a BTI then we may have to alter the expected result and the comment.

I've dug up https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92424 and https://reviews.llvm.org/D72215 for context.

Mar 30 2021, 11:01 AM · Restricted Project
pbarrio updated the diff for D99417: [AArch64][v8.5A] Add BTI to all function starts.

Reintroduced the removed fpatchable-function-entry test, but modified so that it expects a landing pad at the beginning of the function.

Mar 30 2021, 10:44 AM · Restricted Project
pbarrio added a comment to D99417: [AArch64][v8.5A] Add BTI to all function starts.

My guess is that this would only affect a small number of functions?

Mar 30 2021, 4:00 AM · Restricted Project

Mar 26 2021

pbarrio added a comment to D99417: [AArch64][v8.5A] Add BTI to all function starts.

@MaskRay sorry to pull you into this review - feel free to ignore if you're not interested.

Mar 26 2021, 7:14 AM · Restricted Project
pbarrio requested review of D99417: [AArch64][v8.5A] Add BTI to all function starts.
Mar 26 2021, 6:52 AM · Restricted Project

Mar 12 2021

pbarrio added inline comments to D98008: [AArch64][compiler-rt] Strip PAC from the link register..
Mar 12 2021, 2:04 AM · Restricted Project

Nov 10 2020

pbarrio committed rG642b21beba4c: [AArch64] Enable RAS 1.1 system registers in all AArch64 (authored by pbarrio).
[AArch64] Enable RAS 1.1 system registers in all AArch64
Nov 10 2020, 4:14 AM
pbarrio closed D90594: [AArch64] Enable RAS 1.1 system registers in all AArch64.
Nov 10 2020, 4:14 AM · Restricted Project

Nov 9 2020

pbarrio added a comment to D90594: [AArch64] Enable RAS 1.1 system registers in all AArch64.

Diogo, Victor, thanks for the review. I am going to attribute the failure in the HWAddressSanitizer to something else, since it looks x86-related and this patch doesn't touch anything near x86 support.

Nov 9 2020, 9:24 AM · Restricted Project

Nov 2 2020

pbarrio requested review of D90594: [AArch64] Enable RAS 1.1 system registers in all AArch64.
Nov 2 2020, 3:33 AM · Restricted Project

Jun 5 2020

pbarrio accepted D81257: [AArch64] Allow BTI mnemonics in the HINT space with BTI disabled.
Jun 5 2020, 8:55 AM · Restricted Project
pbarrio added a comment to D81257: [AArch64] Allow BTI mnemonics in the HINT space with BTI disabled.

This is the same logic that we applied to PAC mnemonics in https://reviews.llvm.org/D78372. I'll approve but I would recommend to wait for a few days in case anyone else has something to say.

Jun 5 2020, 8:55 AM · Restricted Project

Apr 24 2020

pbarrio committed rGd4e7b000b2eb: [AArch64] Allow PAC mnemonics in the HINT space with PAC disabled (authored by pbarrio).
[AArch64] Allow PAC mnemonics in the HINT space with PAC disabled
Apr 24 2020, 9:11 AM
pbarrio closed D78372: [AArch64] Allow PAC mnemonics in the HINT space with PAC disabled.
Apr 24 2020, 9:11 AM · Restricted Project

Apr 21 2020

pbarrio updated the diff for D78372: [AArch64] Allow PAC mnemonics in the HINT space with PAC disabled.

Another rebase to pass C.I. - looks like it was broken outside this commit

Apr 21 2020, 10:47 AM · Restricted Project
pbarrio updated the diff for D78372: [AArch64] Allow PAC mnemonics in the HINT space with PAC disabled.

Rebase to trigger C.I.

Apr 21 2020, 3:46 AM · Restricted Project

Apr 17 2020

pbarrio created D78372: [AArch64] Allow PAC mnemonics in the HINT space with PAC disabled.
Apr 17 2020, 8:05 AM · Restricted Project

Mar 5 2020

pbarrio committed rGe440e0a71572: Fix MemTagSanitizer docs to point at Armv8.5-A MTE (authored by pbarrio).
Fix MemTagSanitizer docs to point at Armv8.5-A MTE
Mar 5 2020, 9:52 AM

Jan 22 2020

pbarrio committed rGa8ff6c0b0971: [AArch64] Add test for DWARF return address signing (authored by pbarrio).
[AArch64] Add test for DWARF return address signing
Jan 22 2020, 8:41 AM
pbarrio closed D72835: [AArch64] Add test for DWARF return address signing.
Jan 22 2020, 8:41 AM · Restricted Project
pbarrio added a reviewer for D72835: [AArch64] Add test for DWARF return address signing: keith.walker.arm.
Jan 22 2020, 3:49 AM · Restricted Project

Jan 16 2020

pbarrio created D72835: [AArch64] Add test for DWARF return address signing.
Jan 16 2020, 4:36 AM · Restricted Project

Jan 13 2020

pbarrio committed rGda33762de853: [AArch64] Emit HINT instead of PAC insns in Armv8.2-A or below (authored by pbarrio).
[AArch64] Emit HINT instead of PAC insns in Armv8.2-A or below
Jan 13 2020, 6:17 AM
pbarrio closed D71658: [AArch64] Emit HINT instead of PAC insns in Armv8.2-A or below.
Jan 13 2020, 6:16 AM · Restricted Project
pbarrio updated the diff for D71658: [AArch64] Emit HINT instead of PAC insns in Armv8.2-A or below.

Updated tests and rebase conflict with new "isAuthenticated" predicate

Jan 13 2020, 4:06 AM · Restricted Project

Jan 2 2020

pbarrio added a comment to D71658: [AArch64] Emit HINT instead of PAC insns in Armv8.2-A or below.

Ping

Jan 2 2020, 2:16 AM · Restricted Project

Dec 18 2019

pbarrio created D71658: [AArch64] Emit HINT instead of PAC insns in Armv8.2-A or below.
Dec 18 2019, 5:30 AM · Restricted Project

Sep 30 2019

pbarrio committed rGffac4e860329: Fix doc for t inline asm constraints for ARM/Thumb (authored by pbarrio).
Fix doc for t inline asm constraints for ARM/Thumb
Sep 30 2019, 9:54 AM

Sep 27 2019

pbarrio updated the diff for D68090: Fix doc for t inline asm constraints for ARM/Thumb.

Reworded all the FP & SIMD constraints

Sep 27 2019, 10:47 AM · Restricted Project
pbarrio added a comment to D68090: Fix doc for t inline asm constraints for ARM/Thumb.

Discussing with @chill on a chat, he was happier with the following wording:

Sep 27 2019, 3:15 AM · Restricted Project
pbarrio added a reviewer for D68090: Fix doc for t inline asm constraints for ARM/Thumb: chill.
Sep 27 2019, 3:13 AM · Restricted Project

Sep 26 2019

pbarrio created D68090: Fix doc for t inline asm constraints for ARM/Thumb.
Sep 26 2019, 9:21 AM · Restricted Project

Sep 23 2019

pbarrio accepted D67840: Cosmetic; don't use the magic constant 35 when HASH is more readable. This matches other MCK__<THING>_* usage better..
Sep 23 2019, 2:57 AM · Restricted Project

Sep 18 2019

pbarrio added a comment to D62394: [ARM][CMSE] Add CMSE header & builtins.

Hi, CMSE upstreaming is indeed one of our priorities. So yes, we are very interested in your feedback. And no, CMSE upstreaming is not abandoned, just going a bit slow ATM :( but any help reviewing is much appreciated! :)

Sep 18 2019, 8:54 AM

Aug 9 2019

pbarrio committed rG3cdd586be28f: [AArch64] Set pref. func. align to 8 bytes on Neoverse E1 & Cortex-A65 (authored by pbarrio).
[AArch64] Set pref. func. align to 8 bytes on Neoverse E1 & Cortex-A65
Aug 9 2019, 4:05 AM

Aug 8 2019

pbarrio created D65937: [AArch64] Set pref. func. align to 8 bytes on Neoverse E1 & Cortex-A65.
Aug 8 2019, 4:00 AM · Restricted Project

Aug 5 2019

pbarrio committed rGa8426b43f8b9: [AArch64] Set preferred function alignment to 16 bytes on Neoverse N1 (authored by pbarrio).
[AArch64] Set preferred function alignment to 16 bytes on Neoverse N1
Aug 5 2019, 10:39 AM

Aug 2 2019

pbarrio added inline comments to D65654: [AArch64] Set preferred function alignment to 16 bytes on Neoverse N1.
Aug 2 2019, 8:30 AM · Restricted Project
pbarrio created D65654: [AArch64] Set preferred function alignment to 16 bytes on Neoverse N1.
Aug 2 2019, 6:26 AM · Restricted Project

Jul 25 2019

pbarrio committed rG275954539d1e: [ARM][AArch64] Support for Cortex-A65 & A65AE, Neoverse E1 & N1 (authored by pbarrio).
[ARM][AArch64] Support for Cortex-A65 & A65AE, Neoverse E1 & N1
Jul 25 2019, 4:03 AM

Jul 19 2019

pbarrio updated the diff for D64406: [ARM][AArch64] Cortex-A65AE, Neoverse E1 and Neoverse N1 support.

Oooops sorry, not sure how I missed that. I've added SSBS to all the CPUs now.

Jul 19 2019, 9:32 AM · Restricted Project

Jul 18 2019

pbarrio updated the diff for D64406: [ARM][AArch64] Cortex-A65AE, Neoverse E1 and Neoverse N1 support.

Add Cortex-A65 and a few features that were missed in the first patch. I think all the features should be in now.

Jul 18 2019, 2:41 AM · Restricted Project

Jul 11 2019

pbarrio added a comment to D63707: [AArch64] Define ETE and TRBE system registers.

These are trace extensions that will be used by a niche group of developers. They add no instructions (only system registers) and they will not be generated by the compiler. Adding them by default does not have any side-effect, i.e. everyone will still see the same behavior in their code unless they start using these registers on purpose.

Jul 11 2019, 6:26 AM · Restricted Project

Jul 9 2019

pbarrio created D64406: [ARM][AArch64] Cortex-A65AE, Neoverse E1 and Neoverse N1 support.
Jul 9 2019, 5:33 AM · Restricted Project

Jan 25 2019

pbarrio accepted D57060: [NFC][Clang] Add driver tests for sb and predres.

Same idea as https://reviews.llvm.org/D54961 but for two other command line options. Approved!

Jan 25 2019, 2:37 AM

Dec 3 2018

pbarrio updated the diff for D54629: [AArch64] Add command-line option for SSBS.

Rebased onto master after a recent refactoring of the AArch64 target parser.

Dec 3 2018, 5:58 AM

Nov 27 2018

pbarrio added a comment to D54629: [AArch64] Add command-line option for SSBS.

Thank you for the review, Sam :)

Nov 27 2018, 11:09 AM
pbarrio created D54961: [AArch64] Add command-line option for SSBS.
Nov 27 2018, 11:06 AM

Nov 19 2018

pbarrio added a comment to D54629: [AArch64] Add command-line option for SSBS.

The Armv8.5-A specification is available here: https://developer.arm.com/products/architecture/cpu-architecture/a-profile/exploration-tools

Nov 19 2018, 4:22 AM

Nov 16 2018

pbarrio created D54629: [AArch64] Add command-line option for SSBS.
Nov 16 2018, 5:20 AM

Mar 1 2018

pbarrio added a comment to D42574: [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations.

Buildbot failing here: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan/builds/2998

Mar 1 2018, 2:59 AM

Feb 28 2018

pbarrio added inline comments to D42574: [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations.
Feb 28 2018, 6:17 AM

Feb 23 2018

pbarrio added a comment to D42574: [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations.

If nobody does it before, I'll give it a try early next week.

Feb 23 2018, 8:34 AM

Feb 15 2018

pbarrio added a comment to D43342: [ARM] Fix redirect in inline assembly test.

I'll commit this fix now to prevent other buildbots to fail.

Feb 15 2018, 11:14 AM
pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

Related fix for a silly errata in one of the tests that is breaking some Windows buildbots:

Feb 15 2018, 11:11 AM
pbarrio added a reviewer for D43342: [ARM] Fix redirect in inline assembly test: apilipenko.
Feb 15 2018, 10:23 AM
pbarrio created D43342: [ARM] Fix redirect in inline assembly test.
Feb 15 2018, 10:18 AM
pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

Committed now. @rengolin many thanks for the review!

Feb 15 2018, 6:49 AM
pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

What about 32-bit integers?

Feb 15 2018, 1:54 AM

Feb 13 2018

pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

There is still the possibility that someone tries to use 't' for a vector of two doubles. Only single-precision is allowed in vector operations for 32-bit architectures, so doing something like this would be illegal:

Feb 13 2018, 7:08 AM
pbarrio updated the diff for D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

Added tests for int vectors. Allowing integers to go to FP/vector registers is
useful because FP/int conversion instructions (i.e. VCVT) need that.

Feb 13 2018, 6:51 AM

Feb 12 2018

pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

AFAICS, the current approach just checks the size of the type, not the size of the sub-type. f64 or even integer types could still leak in, no?

To prove they're not, we need tests making sure they break if you try.

Feb 12 2018, 10:45 AM
pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

I was wrong when I said the GNU modifiers are q/e, which actually makes things easier. The correct operand modifiers to select a quad/double vector register in GCC are q/P. These already work in LLVM (they are just ignored according to the documentation and also my local testing). So, I think there is no need for an additional patch; we should be able to handle inline assembly written for GCC with the 't' constraint.

I'm not sure I get this. Are you saying this patch can be abandoned?

Feb 12 2018, 10:25 AM
pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

This goes against the documentation, which only supports sN:
https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints

Though it's not completely wrong to support the low part of D/Q registers, I'm not sure the code in question is making sure this is true.

Feb 12 2018, 10:18 AM
pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

This behaviour still differs from that of GCC but I think it is actually more correct, since LLVM picks up the right register type based on the datatype of x, while GCC would need an extra operand modifier to achieve the same result

If we're not going to match gcc, what's the point?

This patch allows specifying the lower Q/D vector registers from inline assembly, which is something that can be done in GCC but not in LLVM. In order to mimic the GCC behaviour completely, we should also add support for the q/e/f operand modifiers with the 't' constraint. These modifiers are already allowed with the 'w' constraint for the complete vector register set, so it shouldn't be hard to do. However, I think it should be a separate patch with additional testing.

Feb 12 2018, 9:59 AM
pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

Ping

Feb 12 2018, 7:28 AM

Feb 7 2018

pbarrio added inline comments to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.
Feb 7 2018, 6:46 AM
pbarrio added a comment to D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.

This behaviour still differs from that of GCC but I think it is actually more correct, since LLVM picks up the right register type based on the datatype of x, while GCC would need an extra operand modifier to achieve the same result

If we're not going to match gcc, what's the point?

Feb 7 2018, 3:23 AM

Feb 6 2018

pbarrio created D42962: [ARM] Allow 64- and 128-bit types with 't' inline asm constraint.
Feb 6 2018, 6:46 AM

Feb 1 2018

pbarrio added a comment to D42574: [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations.

Sorry, I missed the sanitizer failure in yesterday's buildbot message and thought it wasn't related to this patch. I will leave some time for @thebolt to fix it, otherwise maybe I can take a look.

Feb 1 2018, 2:55 AM

Jan 31 2018

pbarrio added a comment to D42574: [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations.

Committed now. Thanks for the patch @thebolt!

Jan 31 2018, 5:25 AM
pbarrio added a comment to D42574: [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations.

I'll do it.

Jan 31 2018, 3:37 AM

Jan 29 2018

pbarrio accepted D42574: [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations.

LGTM now. In other circumstances, I would wait for someone more experienced than me, but this is a small peephole optimization. I've also tested the patch and it works correctly, so I think it has very little risk.

Jan 29 2018, 5:07 AM