Page MenuHomePhabricator

asb (Alex Bradbury)
Director and Co-founder, lowRISC CIC

Projects

User does not belong to any projects.

User Details

User Since
Aug 6 2013, 5:31 AM (302 w, 2 h)

Recent Activity

Thu, May 16

asb committed rG3966b02cc82a: [RISCV][NFC] Add nounwind attribute to functions missing it in… (authored by asb).
[RISCV][NFC] Add nounwind attribute to functions missing it in…
Thu, May 16, 6:56 AM
asb committed rL360897: [RISCV][NFC] Add nounwind attribute to functions missing it in….
[RISCV][NFC] Add nounwind attribute to functions missing it in…
Thu, May 16, 6:54 AM
asb added a comment to D61773: [RISCV] Add CFI directives for RISCV prologue/epilog..
In D61773#1504714, @asb wrote:

Better to modify the tests to add nounwind. I have a patch that does that sitting around (I added CFI directives downstream but didn't clean it up for submission). Let me apply the test suite patch upstream, then can you rebase on that.

Thu, May 16, 6:54 AM · Restricted Project
asb created D62007: [RISCV][WIP] Minimal stack realignment support.
Thu, May 16, 6:49 AM · Restricted Project
asb added a comment to D61773: [RISCV] Add CFI directives for RISCV prologue/epilog..

Better to modify the tests to add nounwind. I have a patch that does that sitting around (I added CFI directives downstream but didn't clean it up for submission). Let me apply the test suite patch upstream, then can you rebase on that.

Thu, May 16, 6:45 AM · Restricted Project

Thu, May 9

asb added inline comments to D60456: [RISCV][WIP/RFC] Hard float ABI support.
Thu, May 9, 5:25 AM · Restricted Project
asb updated the diff for D60456: [RISCV][WIP/RFC] Hard float ABI support.

Update:

  • Expanded and improved tests
  • Set ABI defines
  • Remove errant TODO
  • Use alignTo
Thu, May 9, 5:25 AM · Restricted Project
asb added a comment to D61665: [TailCall] Disable tail call if the callee function contain __builtin_frame_address or __builtin_return_address.

Yes, I think leaving the current behaviour probably makes sense. I encountered that test failure too and mask that test on the basis that that those builtins aren't documented as being guaranteed to work https://gcc.gnu.org/onlinedocs/gcc/Return-Address.html (that page even notes that crashing is allowable behaviour).

Thu, May 9, 12:01 AM · Restricted Project

Wed, May 8

asb added a comment to D61665: [TailCall] Disable tail call if the callee function contain __builtin_frame_address or __builtin_return_address.

The description of the llvm.frameaddress and llvm.returnaddress intrinsics seems to indicate that these are "best effort" and LLVM doesn't really guarantee a correct result for a depth > 1 https://llvm.org/docs/LangRef.html#llvm-returnaddress-intrinsic https://llvm.org/docs/LangRef.html#llvm-returnaddress-intrinsic

Wed, May 8, 2:09 AM · Restricted Project

Thu, May 2

asb accepted D61412: [RISCV] Replace map with set in getReqFeatures.

LGTM!

Thu, May 2, 11:51 PM · Restricted Project

Apr 18 2019

asb added a comment to D60052: Add Connex vector processor back end.

Some initial feedback:

  • This patch is pretty huge which makes it pretty hard to meaningfully review
  • There seem to be effectively no tests. I'd expect test/CodeGen/Connex and test/MC/Connex to be reasonably well populated
  • Plenty of code commented out or with date-based comments that don't match our style, e.g. // 2018_*
  • Files have the old license header rather than the new one
Apr 18 2019, 5:49 AM · Restricted Project

Apr 17 2019

asb added a comment to D45181: [RISCV] Add diff relocation support for RISC-V.

Thanks for the report Roger. I agree with @jrtc27's analysis, it makes sense to limit requiresDiffExpressionRelocations to returning true only for code sections.

Apr 17 2019, 6:55 AM · Restricted Project

Apr 11 2019

asb added a comment to D60294: [DAGCombiner] [CodeGenPrepare] Split large offsets from base addresses.

Not sure if it's relevant to what this patch is trying to do, but x86 has a similar example described here:
https://bugs.llvm.org/show_bug.cgi?id=24447

Apr 11 2019, 6:30 AM · Restricted Project
asb added inline comments to D60294: [DAGCombiner] [CodeGenPrepare] Split large offsets from base addresses.
Apr 11 2019, 5:39 AM · Restricted Project
asb accepted D60528: [RISCV] Diagnose invalid second input register operand when using %tprel_add.
Apr 11 2019, 5:01 AM · Restricted Project
asb added a comment to D60528: [RISCV] Diagnose invalid second input register operand when using %tprel_add.

Good catch Roger, thanks! This looks good to me, though I wonder if it's worth being a bit more explicit in the checkPseudoAddTPRel comment.

Apr 11 2019, 4:08 AM · Restricted Project
asb accepted D60314: [DAGCombiner] Add missing flag to addressing mode check.

With Eli's suggested change (sinking the assignment to the ADD/SUB branches), this seems good to me.

Apr 11 2019, 3:59 AM · Restricted Project
asb accepted D59477: [RISCV] Custom lower SHL_PARTS, SRA_PARTS, SRL_PARTS.

This looks good to me. The GCC torture suite is happy with this code too, which serves as an extra (but non-exhaustive) sanity check. It's not immediately obvious to me that checking for OptForMinSize is better than OptForSize, but the precise criteria for when something should be done at Oz vs Os don't seem to be well specified and checking OptForMinSize is consistent with other backends, so the right choice for now.

Apr 11 2019, 3:53 AM · Restricted Project
asb added a comment to D60294: [DAGCombiner] [CodeGenPrepare] Split large offsets from base addresses.

Given that we're splitting the GEPs before SelectionDAG, the only way to preserve the optimization is to avoid re-merging them... and I can't think of any reasonable approach for that other than something along the lines of this patch. Well, I guess we could just completely disable folding without regard for whether the addressing mode is legal, but that probably interacts badly with type legalization.

The alternative, as you note, is to do something after isel. Arguably that would be more effective. At that point you have a better idea of what constants are actually necessary, and you could integrate it with other similar optimizations like optimizing related integer constants. This is sort of along the lines of RISCVMergeBaseOffset.

Apr 11 2019, 3:48 AM · Restricted Project

Apr 10 2019

asb accepted D57493: [RISCV] Put data smaller than eight bytes to small data section.

Many thanks for this. I've added some minor formatting and comment phrasing nits, but otherwise this is looking good to me.

Apr 10 2019, 10:50 AM · Restricted Project
asb accepted D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers.

LGTM, thanks!

Apr 10 2019, 3:15 AM · Restricted Project

Apr 9 2019

asb created D60456: [RISCV][WIP/RFC] Hard float ABI support.
Apr 9 2019, 5:45 AM · Restricted Project
asb committed rG91542e14c770: [RISCV] Unbreak test from r357989 (authored by asb).
[RISCV] Unbreak test from r357989
Apr 9 2019, 3:45 AM
asb committed rC357993: [RISCV] Unbreak test from r357989.
[RISCV] Unbreak test from r357989
Apr 9 2019, 3:45 AM
asb committed rL357993: [RISCV] Unbreak test from r357989.
[RISCV] Unbreak test from r357989
Apr 9 2019, 3:44 AM
asb committed rGfa3eb1201089: [RISCV][NFC] Minor fixup for r357989 (authored by asb).
[RISCV][NFC] Minor fixup for r357989
Apr 9 2019, 3:24 AM
asb committed rL357991: [RISCV][NFC] Minor fixup for r357989.
[RISCV][NFC] Minor fixup for r357989
Apr 9 2019, 3:24 AM
asb committed rC357991: [RISCV][NFC] Minor fixup for r357989.
[RISCV][NFC] Minor fixup for r357989
Apr 9 2019, 3:24 AM
asb committed rGc0e8231cdd90: [RISCV][NFC] Refactor RISC-V ABI lowering tests in preparation for hard float… (authored by asb).
[RISCV][NFC] Refactor RISC-V ABI lowering tests in preparation for hard float…
Apr 9 2019, 3:11 AM
asb committed rL357989: [RISCV][NFC] Refactor RISC-V ABI lowering tests in preparation for hard float….
[RISCV][NFC] Refactor RISC-V ABI lowering tests in preparation for hard float…
Apr 9 2019, 3:11 AM
asb committed rC357989: [RISCV][NFC] Refactor RISC-V ABI lowering tests in preparation for hard float….
[RISCV][NFC] Refactor RISC-V ABI lowering tests in preparation for hard float…
Apr 9 2019, 3:11 AM

Apr 4 2019

asb committed rGb920a7f65b13: [RISCV] Fix rL357699 by adding missing zero-length files (authored by asb).
[RISCV] Fix rL357699 by adding missing zero-length files
Apr 4 2019, 7:35 AM
asb committed rC357702: [RISCV] Fix rL357699 by adding missing zero-length files.
[RISCV] Fix rL357699 by adding missing zero-length files
Apr 4 2019, 7:34 AM
asb committed rL357702: [RISCV] Fix rL357699 by adding missing zero-length files.
[RISCV] Fix rL357699 by adding missing zero-length files
Apr 4 2019, 7:34 AM
asb committed rGd411677deae0: [RISCV] Collect library directories and triples for riscv64 triple too (authored by asb).
[RISCV] Collect library directories and triples for riscv64 triple too
Apr 4 2019, 7:19 AM
asb committed rC357699: [RISCV] Collect library directories and triples for riscv64 triple too.
[RISCV] Collect library directories and triples for riscv64 triple too
Apr 4 2019, 7:19 AM
asb committed rL357699: [RISCV] Collect library directories and triples for riscv64 triple too.
[RISCV] Collect library directories and triples for riscv64 triple too
Apr 4 2019, 7:18 AM
asb closed D53392: [RISCV] Collect library directories and triples for riscv64 triple too.
Apr 4 2019, 7:18 AM · Restricted Project
asb accepted D53392: [RISCV] Collect library directories and triples for riscv64 triple too.

This got missed somehow as I had a functionally identical patch in my local development tree (though not with as thorough tests - thanks for that!). LGTM, thanks Ed.

Apr 4 2019, 7:15 AM · Restricted Project
asb committed rGa0ce4ac0c8da: [RISCV][NFC] s/riscv32-linux-unknown-elf/riscv32-unknown-linux-gnu in… (authored by asb).
[RISCV][NFC] s/riscv32-linux-unknown-elf/riscv32-unknown-linux-gnu in…
Apr 4 2019, 6:53 AM
asb committed rC357693: [RISCV][NFC] s/riscv32-linux-unknown-elf/riscv32-unknown-linux-gnu in….
[RISCV][NFC] s/riscv32-linux-unknown-elf/riscv32-unknown-linux-gnu in…
Apr 4 2019, 6:53 AM
asb committed rL357693: [RISCV][NFC] s/riscv32-linux-unknown-elf/riscv32-unknown-linux-gnu in….
[RISCV][NFC] s/riscv32-linux-unknown-elf/riscv32-unknown-linux-gnu in…
Apr 4 2019, 6:53 AM
asb accepted D60136: [RISCV] Implement adding a displacement to a BlockAddress.

Thanks Roger, this looks good to me.

Apr 4 2019, 6:15 AM · Restricted Project

Apr 2 2019

asb accepted D55341: [RISCV] Support assembling TLS add and associated modifiers.

Hi Lewis, this looks good to me - thanks! Do you want to request commit access as per the developer policy so you can commit yourself?

Apr 2 2019, 5:55 AM · Restricted Project
asb committed rGf8078f6b1d91: [RISCV] Support assembling @plt symbol operands (authored by asb).
[RISCV] Support assembling @plt symbol operands
Apr 2 2019, 5:46 AM
asb committed rL357470: [RISCV] Support assembling @plt symbol operands.
[RISCV] Support assembling @plt symbol operands
Apr 2 2019, 5:46 AM
asb closed D55335: [RISCV] Support assembling @plt symbol operands.
Apr 2 2019, 5:46 AM · Restricted Project
asb accepted D55335: [RISCV] Support assembling @plt symbol operands.

Looks good to me, thanks.

Apr 2 2019, 5:32 AM · Restricted Project

Apr 1 2019

asb committed rG44668ae7c7df: [RISCV] Attach VK_RISCV_CALL to symbols upon creation (authored by asb).
[RISCV] Attach VK_RISCV_CALL to symbols upon creation
Apr 1 2019, 7:53 AM
asb committed rL357396: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.
[RISCV] Attach VK_RISCV_CALL to symbols upon creation
Apr 1 2019, 7:53 AM
asb closed D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.
Apr 1 2019, 7:53 AM · Restricted Project
asb accepted D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.

Thanks Lewis, this looks good to me. We should later revisit whether we should accept call 1234 like GNU as does.

Apr 1 2019, 7:50 AM · Restricted Project
asb committed rGda20f5ca7452: [RISCV] Generate address sequences suitable for mcmodel=medium (authored by asb).
[RISCV] Generate address sequences suitable for mcmodel=medium
Apr 1 2019, 7:43 AM
asb committed rL357393: [RISCV] Generate address sequences suitable for mcmodel=medium.
[RISCV] Generate address sequences suitable for mcmodel=medium
Apr 1 2019, 7:43 AM
asb closed D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.
Apr 1 2019, 7:42 AM · Restricted Project
asb accepted D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.

LGTM, thanks.

Apr 1 2019, 7:33 AM · Restricted Project
asb added a comment to D59477: [RISCV] Custom lower SHL_PARTS, SRA_PARTS, SRL_PARTS.

I think it would be worth rounding out the tests a bit, especially as it should just require a trivial amount of copy and paste and editing to do so:

  • ashr64_minsize
  • shl64_minsize
  • lshr128
  • ashr128
Apr 1 2019, 4:58 AM · Restricted Project

Mar 31 2019

asb committed rGca81a56f658a: [RISCV] Don't evaluatePCRelLo if a relocation will be forced (e.g. due to… (authored by asb).
[RISCV] Don't evaluatePCRelLo if a relocation will be forced (e.g. due to…
Mar 31 2019, 7:39 PM
asb committed rL357374: [RISCV] Don't evaluatePCRelLo if a relocation will be forced (e.g. due to….
[RISCV] Don't evaluatePCRelLo if a relocation will be forced (e.g. due to…
Mar 31 2019, 7:39 PM
asb closed D59686: [RISCV] Don't evaluatePCRelLo if a relocation will be forced (e.g. due to linker relaxation).
Mar 31 2019, 7:38 PM · Restricted Project
asb accepted D59699: [RISCV] Add seto pattern expansion.

LGTM, thanks!

Mar 31 2019, 7:25 PM · Restricted Project

Mar 30 2019

asb committed rG0b2803ee6578: [RISCV] Add codegen support for ilp32f, ilp32d, lp64f, and lp64d ("hard float")… (authored by asb).
[RISCV] Add codegen support for ilp32f, ilp32d, lp64f, and lp64d ("hard float")…
Mar 30 2019, 10:59 AM
asb committed rL357352: [RISCV] Add codegen support for ilp32f, ilp32d, lp64f, and lp64d ("hard float")….
[RISCV] Add codegen support for ilp32f, ilp32d, lp64f, and lp64d ("hard float")…
Mar 30 2019, 10:58 AM
asb closed D59357: [RISCV] Add codegen support for ilp32f, ilp32d, lp64f, and lp64d ("hard float") ABIs.
Mar 30 2019, 10:58 AM · Restricted Project
asb updated the diff for D59357: [RISCV] Add codegen support for ilp32f, ilp32d, lp64f, and lp64d ("hard float") ABIs.

@rogfer01: Thanks for the review. You're right that we could do with coverage for varargs under the hard float ABIs. I've modifed test/CodeGen/RISCV/vararg.ll so it provides common coverage for vararg passing for these ABIs (which of course should be the same as the integer ABIs). How does this patch look now?

Mar 30 2019, 9:01 AM · Restricted Project
asb committed rGb5498cbf64e5: [RISCV] Add RV64 CHECK lines to test/CodeGen/RISCV/vararg.ll and prepare for… (authored by asb).
[RISCV] Add RV64 CHECK lines to test/CodeGen/RISCV/vararg.ll and prepare for…
Mar 30 2019, 8:56 AM
asb committed rL357350: [RISCV] Add RV64 CHECK lines to test/CodeGen/RISCV/vararg.ll and prepare for….
[RISCV] Add RV64 CHECK lines to test/CodeGen/RISCV/vararg.ll and prepare for…
Mar 30 2019, 8:52 AM
asb committed rG9681b01c214f: [RISCV] Add DAGCombine for (SplitF64 (ConstantFP x)) (authored by asb).
[RISCV] Add DAGCombine for (SplitF64 (ConstantFP x))
Mar 30 2019, 2:17 AM
asb committed rL357341: [RISCV] Add DAGCombine for (SplitF64 (ConstantFP x)).
[RISCV] Add DAGCombine for (SplitF64 (ConstantFP x))
Mar 30 2019, 2:17 AM

Mar 29 2019

asb committed rG98b8ecde64d8: [RISCV][NFC] Remove floating point operations from test/CodeGen/RISCV/vararg.ll (authored by asb).
[RISCV][NFC] Remove floating point operations from test/CodeGen/RISCV/vararg.ll
Mar 29 2019, 10:25 PM
asb committed rL357339: [RISCV][NFC] Remove floating point operations from test/CodeGen/RISCV/vararg.ll.
[RISCV][NFC] Remove floating point operations from test/CodeGen/RISCV/vararg.ll
Mar 29 2019, 10:25 PM
asb updated the diff for D59686: [RISCV] Don't evaluatePCRelLo if a relocation will be forced (e.g. due to linker relaxation).

Thanks for the review @shiva0217 - how is this?

Mar 29 2019, 1:34 PM · Restricted Project

Mar 28 2019

asb added a comment to D59592: [RISCV] support ilp32e Calling Convention.

Hi Daliang., thanks for the submission. One problem I think you'll find once you extend the tests is that support for realigning the stack is going to be required - e.g. if passing a double (8-byte aligned) on the stack (4-byte aligned).

Mar 28 2019, 7:27 AM · Restricted Project

Mar 25 2019

asb accepted D59753: [RISCV] Improve codegen for icmp {ne,eq} with a constant.

LGTM, thanks. But would be better titled to reflect that it include GPR != simm12 optimisation. Maybe even better titled as "[RISCV] Improve codegen for icmp {ne,eq} with a constant" or similar (IMHO!)

Mar 25 2019, 2:13 AM · Restricted Project

Mar 24 2019

asb accepted D59298: [RISCV] Pass -target-abi to -cc1as.

Thanks, LGTM.

Mar 24 2019, 10:25 AM · Restricted Project, Restricted Project

Mar 22 2019

asb added a comment to D59233: libclang/CIndexer.cpp: Use loadquery() on AIX for path to library.

Thanks @xingxue for the review. I will update for the error handling before committing.

Mar 22 2019, 12:21 PM · Restricted Project
asb committed rL356744: [RISCV] Add basic RV32E definitions and MC layer support.
[RISCV] Add basic RV32E definitions and MC layer support
Mar 22 2019, 4:23 AM
asb committed rGdab1f6fc4e02: [RISCV] Add basic RV32E definitions and MC layer support (authored by asb).
[RISCV] Add basic RV32E definitions and MC layer support
Mar 22 2019, 4:23 AM
asb closed D59470: [RISCV] Add basic RV32E definitions and MC layer support.
Mar 22 2019, 4:23 AM · Restricted Project
asb committed rGb9e78c39947b: [RISCV] Optimize emission of SELECT sequences (authored by asb).
[RISCV] Optimize emission of SELECT sequences
Mar 22 2019, 3:45 AM
asb committed rL356741: [RISCV] Optimize emission of SELECT sequences.
[RISCV] Optimize emission of SELECT sequences
Mar 22 2019, 3:44 AM
asb closed D59355: [RISCV] Optimize emission of SELECT sequences.
Mar 22 2019, 3:44 AM · Restricted Project
asb committed rG336910115867: [RISCV] Allow conversion of CC logic to bitwise logic (authored by asb).
[RISCV] Allow conversion of CC logic to bitwise logic
Mar 22 2019, 3:41 AM
asb committed rL356740: [RISCV] Allow conversion of CC logic to bitwise logic.
[RISCV] Allow conversion of CC logic to bitwise logic
Mar 22 2019, 3:40 AM
asb closed D59596: [RISCV] Allow conversion of CC logic to bitwise logic.
Mar 22 2019, 3:40 AM · Restricted Project
asb accepted D59355: [RISCV] Optimize emission of SELECT sequences.

This looks good to me, and given @rogfer01 indicated he's also happy, I think it's ready to merge. Thanks Luis!

Mar 22 2019, 3:40 AM · Restricted Project
asb added a reviewer for D59686: [RISCV] Don't evaluatePCRelLo if a relocation will be forced (e.g. due to linker relaxation): kito-cheng.
Mar 22 2019, 3:34 AM · Restricted Project
asb created D59686: [RISCV] Don't evaluatePCRelLo if a relocation will be forced (e.g. due to linker relaxation).
Mar 22 2019, 3:28 AM · Restricted Project
asb committed rG4fdad7e30e20: [RISCV][NFC] Add test case to MC/RISCV/linker-relaxation.s showing incorrect… (authored by asb).
[RISCV][NFC] Add test case to MC/RISCV/linker-relaxation.s showing incorrect…
Mar 22 2019, 3:20 AM
asb committed rL356736: [RISCV][NFC] Add test case to MC/RISCV/linker-relaxation.s showing incorrect….
[RISCV][NFC] Add test case to MC/RISCV/linker-relaxation.s showing incorrect…
Mar 22 2019, 3:19 AM

Mar 21 2019

asb committed rGf8c785bf1213: [RISCV][NFC] Expand test/MC/RISCV/linker-relaxation.s tests (authored by asb).
[RISCV][NFC] Expand test/MC/RISCV/linker-relaxation.s tests
Mar 21 2019, 11:06 PM
asb committed rL356734: [RISCV][NFC] Expand test/MC/RISCV/linker-relaxation.s tests.
[RISCV][NFC] Expand test/MC/RISCV/linker-relaxation.s tests
Mar 21 2019, 11:06 PM
asb accepted D59596: [RISCV] Allow conversion of CC logic to bitwise logic.

Looks good to me, thanks.

Mar 21 2019, 7:50 AM · Restricted Project
asb committed rG0a9541e9ed3f: [RISCV][NFC] Remove old CHECK lines from linker-relaxation.s test (authored by asb).
[RISCV][NFC] Remove old CHECK lines from linker-relaxation.s test
Mar 21 2019, 2:54 AM
asb committed rL356654: [RISCV][NFC] Remove old CHECK lines from linker-relaxation.s test.
[RISCV][NFC] Remove old CHECK lines from linker-relaxation.s test
Mar 21 2019, 2:53 AM

Mar 19 2019

bero awarded D59357: [RISCV] Add codegen support for ilp32f, ilp32d, lp64f, and lp64d ("hard float") ABIs a Like token.
Mar 19 2019, 7:15 AM · Restricted Project

Mar 17 2019

asb committed rG60444ad16fe5: [RISCV] Add ImmArg to intrinsics (authored by asb).
[RISCV] Add ImmArg to intrinsics
Mar 17 2019, 11:03 PM
asb committed rL356358: [RISCV] Add ImmArg to intrinsics.
[RISCV] Add ImmArg to intrinsics
Mar 17 2019, 11:00 PM
asb requested changes to D59477: [RISCV] Custom lower SHL_PARTS, SRA_PARTS, SRL_PARTS.

Thanks for this Luis. This needs coverage for the optForMinSize checks. I'd recommend extending shifts.ll with minsize versions of the tests, e.g.

Mar 17 2019, 10:39 PM · Restricted Project
asb added a comment to D59355: [RISCV] Optimize emission of SELECT sequences.

Added a few minor nits. You'll want to add a test for debug info to select-optimize-multiple.mir. I had a quick play with this and https://reviews.llvm.org/P8135 looks like a sensible way to do it.

Mar 17 2019, 10:31 PM · Restricted Project