Page MenuHomePhabricator

lewis-revill (Lewis Revill)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 31 2018, 10:55 AM (29 w, 3 d)

Recent Activity

Yesterday

lewis-revill added a comment to D54029: [RISCV] Properly evaluate fixup_riscv_pcrel_lo12.

Hi James, I encountered another case not handled yet in this patch. It produces the error: could not find corresponding %pcrel_hi

.option push
.option norelax
la gp, __global_pointer$
.option pop
la sp, _sp
Fri, Feb 22, 5:28 AM · Restricted Project

Tue, Feb 19

lewis-revill updated the diff for D54295: [WIP, RISCV] Add inline asm constraint A for RISC-V.

Correct test.

Tue, Feb 19, 2:55 AM · Restricted Project, Restricted Project
lewis-revill updated the diff for D54093: [RISCV] Lower inline asm constraints I, J & K for RISC-V.

Don't use zero register for 'J' constraint.

Tue, Feb 19, 2:55 AM · Restricted Project

Fri, Feb 15

lewis-revill added a comment to D54093: [RISCV] Lower inline asm constraints I, J & K for RISC-V.

I think I ended up being thrown off at the time by the output of something with the '%z' modifier, which I see you have now implemented @jrtc27. I'll correct this patch.

Fri, Feb 15, 6:49 AM · Restricted Project

Mon, Feb 11

lewis-revill updated the diff for D55667: [RISCV] Support assembling TLS LA pseudo instructions.

Rebased.

Mon, Feb 11, 7:11 AM · Restricted Project
lewis-revill updated the diff for D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers.

Don't incorrectly set RelaxCandidate for GOT fixups.

Mon, Feb 11, 7:10 AM · Restricted Project
lewis-revill updated the diff for D55341: [RISCV] Support assembling TLS add and associated modifiers.

Correct local rebasing of older patch; add fixup_riscv_relax as well as tprel_add where appropriate; seperate reporting of errors for incorrectly expanding a tprel_add fixup.

Mon, Feb 11, 7:08 AM · Restricted Project
lewis-revill updated the diff for D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.

Rebased

Mon, Feb 11, 7:05 AM · Restricted Project
lewis-revill updated the diff for D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.

Rebased

Mon, Feb 11, 7:03 AM · Restricted Project

Tue, Feb 5

lewis-revill added a comment to D57240: [RISCV] Don't incorrectly force relocation for %pcrel_lo.

Could we not have a situation where the pcrel_hi20 is seen *after* the lo12, in which case the lo12 would be forced but the hi20 could still be evaluated? E.g. I think the following would be problematic:

foo:
    j 1f
0:  addi a0, a0, %pcrel_lo(1f)
    ret
1: auipc a0, %pcrel_hi(bar)
    j 0b

.align 2
bar:
    # ...

Obviously extremely pathological code, but nonetheless valid.

Tue, Feb 5, 9:05 AM · Restricted Project
lewis-revill added a parent revision for D54296: [WIP, RISCV] Lower inline asm constraint A for RISC-V: D57141: [RISCV] Add implied zero offset load/store alias patterns.
Tue, Feb 5, 7:45 AM · Restricted Project
lewis-revill added a child revision for D57141: [RISCV] Add implied zero offset load/store alias patterns: D54296: [WIP, RISCV] Lower inline asm constraint A for RISC-V.
Tue, Feb 5, 7:45 AM · Restricted Project
lewis-revill updated the diff for D54296: [WIP, RISCV] Lower inline asm constraint A for RISC-V.

Don't output an additional '0' when printing indirect memory operands.

Tue, Feb 5, 7:45 AM · Restricted Project
lewis-revill updated the diff for D57055: [RISCV] Mark TLS as supported.

Added RISC-V to thread specifier test as a means of checking TLS is supported.

Tue, Feb 5, 4:43 AM · Restricted Project
lewis-revill updated the diff for D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers.

Rebased with updated dependency

Tue, Feb 5, 2:12 AM · Restricted Project
lewis-revill updated the diff for D55341: [RISCV] Support assembling TLS add and associated modifiers.

Rebased with updated dependency

Tue, Feb 5, 2:12 AM · Restricted Project
lewis-revill updated the diff for D55335: [RISCV] Support assembling @plt symbol operands.

Rebased with updated dependency

Tue, Feb 5, 2:07 AM · Restricted Project
lewis-revill edited parent revisions for D54143: [RISCV] Generate address sequences suitable for mcmodel=medium, added: 1; removed: 1.
Tue, Feb 5, 2:03 AM · Restricted Project
lewis-revill removed a child revision for D54029: [RISCV] Properly evaluate fixup_riscv_pcrel_lo12: D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.
Tue, Feb 5, 2:03 AM · Restricted Project
lewis-revill added a child revision for D57240: [RISCV] Don't incorrectly force relocation for %pcrel_lo: D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.
Tue, Feb 5, 2:03 AM · Restricted Project

Fri, Feb 1

lewis-revill abandoned D57242: [RISCV] Specify MaxAtomicInlineWidth for RISC-V.

Abandoned in favour of D57450

Fri, Feb 1, 2:29 AM · Restricted Project

Mon, Jan 28

lewis-revill added a comment to D57332: [RISCV] Allow parsing of bare symbols with offsets.

Should this only support constant offsets to a symbol? It seems sensible to only support offsets to the symbol, IE add/sub rather than more complex expressions, but the RHS could be any expression at the moment.

Mon, Jan 28, 8:21 AM
lewis-revill created D57332: [RISCV] Allow parsing of bare symbols with offsets.
Mon, Jan 28, 8:19 AM
lewis-revill updated the diff for D57320: [RISCV] Allow parsing immediates that use tilde & exclaim.

Also parse exlaim (!) as a valid token to start an immediate. Add some CSR tests.

Mon, Jan 28, 7:55 AM
lewis-revill updated the diff for D57319: [RISCV] Fix failure to parse parenthesized immediates.

Save the token for the parsed LParen rather than reconstructing one. Add some more tests.

Mon, Jan 28, 7:51 AM
lewis-revill added a comment to D57320: [RISCV] Allow parsing immediates that use tilde & exclaim.

There's also AsmToken::Exclaim for logical not that we could allow (although that's not one I've ever seen in real-world assembly). Please add tests for the CSR change?

Mon, Jan 28, 6:06 AM
lewis-revill added a comment to D57319: [RISCV] Fix failure to parse parenthesized immediates.

You should save the original AsmToken rather than reconstructing it, so as to retain the SMLoc, and Buf no longer needs to be at function scope. Also, I had some more exhaustive tests in mine; I think the important one is addi a1, a0, (1) to ensure that we can parse parenthesised immediate expressions when *not* part of a memory reference.

Mon, Jan 28, 6:03 AM
lewis-revill created D57320: [RISCV] Allow parsing immediates that use tilde & exclaim.
Mon, Jan 28, 3:25 AM
lewis-revill created D57319: [RISCV] Fix failure to parse parenthesized immediates.
Mon, Jan 28, 3:06 AM

Fri, Jan 25

lewis-revill created D57242: [RISCV] Specify MaxAtomicInlineWidth for RISC-V.
Fri, Jan 25, 8:47 AM · Restricted Project
lewis-revill updated the diff for D57240: [RISCV] Don't incorrectly force relocation for %pcrel_lo.

Remove irrelevant dependencies.

Fri, Jan 25, 8:17 AM · Restricted Project
lewis-revill created D57240: [RISCV] Don't incorrectly force relocation for %pcrel_lo.
Fri, Jan 25, 8:10 AM · Restricted Project

Thu, Jan 24

lewis-revill added a comment to D57141: [RISCV] Add implied zero offset load/store alias patterns.

Some basic tests should probably be included for completeness.

Thu, Jan 24, 8:35 AM · Restricted Project
lewis-revill added inline comments to D57141: [RISCV] Add implied zero offset load/store alias patterns.
Thu, Jan 24, 8:32 AM · Restricted Project

Jan 24 2019

lewis-revill added inline comments to D50496: [RISCV] Implment pseudo instructions for load/store from a symbol address..
Jan 24 2019, 6:04 AM · Restricted Project
lewis-revill added a comment to D50496: [RISCV] Implment pseudo instructions for load/store from a symbol address..

This patch doesnt interact well with instructions like sw a3, CONST(a4) introduced by D52298. Looks like MatchOperandParserImpl is happy to match the 'CONST' as a bare symbol for the pseudo before parseImmediate can be called. Perhaps one way to fix it is to have parseBareSymbol check for a trailing parenthesis?

Jan 24 2019, 4:35 AM · Restricted Project
lewis-revill added inline comments to D50496: [RISCV] Implment pseudo instructions for load/store from a symbol address..
Jan 24 2019, 1:53 AM · Restricted Project

Jan 22 2019

lewis-revill updated the diff for D57055: [RISCV] Mark TLS as supported.

Rely on default value rather than explicitly marking TLSSupported as true.

Jan 22 2019, 8:03 AM · Restricted Project
lewis-revill added a parent revision for D57055: [RISCV] Mark TLS as supported: D55305: [RISCV] Add lowering of global TLS addresses.
Jan 22 2019, 7:38 AM · Restricted Project
lewis-revill added a child revision for D55305: [RISCV] Add lowering of global TLS addresses: D57055: [RISCV] Mark TLS as supported.
Jan 22 2019, 7:38 AM
lewis-revill created D57055: [RISCV] Mark TLS as supported.
Jan 22 2019, 7:38 AM · Restricted Project
lewis-revill added inline comments to D53235: [RISCV] Add RV64F codegen support.
Jan 22 2019, 6:26 AM

Jan 8 2019

lewis-revill updated the diff for D55305: [RISCV] Add lowering of global TLS addresses.

Rebased and fixed FileCheck lines.

Jan 8 2019, 3:06 AM
lewis-revill updated the diff for D55667: [RISCV] Support assembling TLS LA pseudo instructions.

Rebased.

Jan 8 2019, 3:05 AM · Restricted Project
lewis-revill updated the diff for D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers.

Rebased (assuming updates to D55279)

Jan 8 2019, 3:03 AM · Restricted Project
lewis-revill updated the diff for D55341: [RISCV] Support assembling TLS add and associated modifiers.

Rebased (assuming updates to D55279)

Jan 8 2019, 3:02 AM · Restricted Project

Jan 7 2019

lewis-revill updated the diff for D55304: [RISCV] Lower calls through PLT.

Rebased.

Jan 7 2019, 6:00 AM
lewis-revill updated the diff for D55335: [RISCV] Support assembling @plt symbol operands.

Rebased.

Jan 7 2019, 5:57 AM · Restricted Project
lewis-revill updated the diff for D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.

Rebased.

Jan 7 2019, 5:55 AM · Restricted Project
lewis-revill updated the diff for D55303: [RISCV] Add lowering of addressing sequences for PIC.

Rebased and updated comments.

Jan 7 2019, 5:55 AM
lewis-revill updated the diff for D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.

Rebased and updated comment.

Jan 7 2019, 5:45 AM · Restricted Project
lewis-revill added a comment to D55279: [RISCV] Support assembling %got_pcrel_hi operator.

Can this be rebased to apply cleanly with the upstreamed D54029?

Jan 7 2019, 1:32 AM · Restricted Project

Dec 13 2018

lewis-revill edited parent revisions for D55305: [RISCV] Add lowering of global TLS addresses, added: 2; removed: 1.
Dec 13 2018, 1:28 PM
lewis-revill removed a child revision for D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers: D55305: [RISCV] Add lowering of global TLS addresses.
Dec 13 2018, 1:28 PM · Restricted Project
lewis-revill added a child revision for D55303: [RISCV] Add lowering of addressing sequences for PIC: D55305: [RISCV] Add lowering of global TLS addresses.
Dec 13 2018, 1:28 PM
lewis-revill added a child revision for D55667: [RISCV] Support assembling TLS LA pseudo instructions: D55305: [RISCV] Add lowering of global TLS addresses.
Dec 13 2018, 1:28 PM · Restricted Project
lewis-revill updated the diff for D55305: [RISCV] Add lowering of global TLS addresses.

Rebase with updated dependencies. Use and expand the la.tls.ie and la.tls.gd pseudo instructions.

Dec 13 2018, 1:27 PM
lewis-revill added a parent revision for D55667: [RISCV] Support assembling TLS LA pseudo instructions: D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers.
Dec 13 2018, 12:56 PM · Restricted Project
lewis-revill added a child revision for D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers: D55667: [RISCV] Support assembling TLS LA pseudo instructions.
Dec 13 2018, 12:56 PM · Restricted Project
lewis-revill created D55667: [RISCV] Support assembling TLS LA pseudo instructions.
Dec 13 2018, 12:55 PM · Restricted Project
lewis-revill added inline comments to D55325: [RISCV] Add assembler support for LA pseudo-instruction.
Dec 13 2018, 12:21 PM · Restricted Project
lewis-revill added inline comments to D55325: [RISCV] Add assembler support for LA pseudo-instruction.
Dec 13 2018, 12:18 PM · Restricted Project
lewis-revill edited parent revisions for D55341: [RISCV] Support assembling TLS add and associated modifiers, added: 1; removed: 1.
Dec 13 2018, 12:13 PM · Restricted Project
lewis-revill added a child revision for D55325: [RISCV] Add assembler support for LA pseudo-instruction: D55341: [RISCV] Support assembling TLS add and associated modifiers.
Dec 13 2018, 12:13 PM · Restricted Project
lewis-revill removed a child revision for D55279: [RISCV] Support assembling %got_pcrel_hi operator: D55341: [RISCV] Support assembling TLS add and associated modifiers.
Dec 13 2018, 12:13 PM · Restricted Project
lewis-revill removed a parent revision for D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers: D54029: [RISCV] Properly evaluate fixup_riscv_pcrel_lo12.
Dec 13 2018, 12:09 PM · Restricted Project
lewis-revill removed a child revision for D54029: [RISCV] Properly evaluate fixup_riscv_pcrel_lo12: D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers.
Dec 13 2018, 12:09 PM · Restricted Project
lewis-revill updated the diff for D55342: [RISCV] Support assembling %tls_{ie,gd}_pcrel_hi modifiers.

Rebased with updated dependencies. Renamed ie_hi to got_hi to match relocation, and rearrange to be adjacent to gd_hi in most files. Added tests to relocations.s, and ensured that fixups evaluate correctly.

Dec 13 2018, 12:08 PM · Restricted Project
lewis-revill updated the diff for D55341: [RISCV] Support assembling TLS add and associated modifiers.

Fix bad merge and failing tests

Dec 13 2018, 11:43 AM · Restricted Project
lewis-revill added a child revision for D55335: [RISCV] Support assembling @plt symbol operands: D55341: [RISCV] Support assembling TLS add and associated modifiers.
Dec 13 2018, 11:20 AM · Restricted Project
lewis-revill added parent revisions for D55341: [RISCV] Support assembling TLS add and associated modifiers: D55335: [RISCV] Support assembling @plt symbol operands, D55279: [RISCV] Support assembling %got_pcrel_hi operator.
Dec 13 2018, 11:20 AM · Restricted Project
lewis-revill added a child revision for D55279: [RISCV] Support assembling %got_pcrel_hi operator: D55341: [RISCV] Support assembling TLS add and associated modifiers.
Dec 13 2018, 11:20 AM · Restricted Project
lewis-revill updated the diff for D55341: [RISCV] Support assembling TLS add and associated modifiers.

Rebased with updated dependencies

Dec 13 2018, 11:19 AM · Restricted Project
lewis-revill added inline comments to D55303: [RISCV] Add lowering of addressing sequences for PIC.
Dec 13 2018, 9:50 AM
lewis-revill updated the diff for D55303: [RISCV] Add lowering of addressing sequences for PIC.

Move getAddrPIC() and isPositionIndependent() checks to getAddr()

Dec 13 2018, 9:49 AM
lewis-revill added inline comments to D55303: [RISCV] Add lowering of addressing sequences for PIC.
Dec 13 2018, 1:33 AM
lewis-revill updated the diff for D55303: [RISCV] Add lowering of addressing sequences for PIC.

Remove unnecessary Flags operand

Dec 13 2018, 1:23 AM
lewis-revill updated the diff for D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.

Remove unnecessary Flags operand.

Dec 13 2018, 1:06 AM · Restricted Project

Dec 11 2018

lewis-revill updated the diff for D55335: [RISCV] Support assembling @plt symbol operands.

Rebase following update to D55560.

Dec 11 2018, 1:04 PM · Restricted Project
lewis-revill updated the diff for D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.

Do not allow VK_RISCV_None on call symbols

Dec 11 2018, 1:01 PM · Restricted Project
lewis-revill added inline comments to D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.
Dec 11 2018, 12:54 PM · Restricted Project
lewis-revill removed a child revision for D55303: [RISCV] Add lowering of addressing sequences for PIC: D55304: [RISCV] Lower calls through PLT.
Dec 11 2018, 12:52 PM
lewis-revill updated the diff for D55304: [RISCV] Lower calls through PLT.

Rebased to use D55560 and with fewer dependencies

Dec 11 2018, 12:52 PM
lewis-revill updated the summary of D55304: [RISCV] Lower calls through PLT.
Dec 11 2018, 12:52 PM
lewis-revill removed a parent revision for D55304: [RISCV] Lower calls through PLT: D55303: [RISCV] Add lowering of addressing sequences for PIC.
Dec 11 2018, 12:52 PM
lewis-revill added a parent revision for D55335: [RISCV] Support assembling @plt symbol operands: D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.
Dec 11 2018, 9:06 AM · Restricted Project
lewis-revill added a child revision for D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation: D55335: [RISCV] Support assembling @plt symbol operands.
Dec 11 2018, 9:06 AM · Restricted Project
lewis-revill updated the diff for D55335: [RISCV] Support assembling @plt symbol operands.

Rebased removing unnecessary dependencies and to use the cleaner CallSymbol patch.

Dec 11 2018, 9:05 AM · Restricted Project
lewis-revill created D55560: [RISCV] Attach VK_RISCV_CALL to symbols upon creation.
Dec 11 2018, 9:03 AM · Restricted Project
lewis-revill added a comment to D55279: [RISCV] Support assembling %got_pcrel_hi operator.

I think that is a change that should be implemented in this revision, since this is the revision that adds the fixup and the tests. Otherwise we would end up with D54029 depending on this, which itself depends on D54029.

Dec 11 2018, 6:57 AM · Restricted Project

Dec 10 2018

lewis-revill added a child revision for D55325: [RISCV] Add assembler support for LA pseudo-instruction: D55303: [RISCV] Add lowering of addressing sequences for PIC.
Dec 10 2018, 7:46 PM · Restricted Project
lewis-revill added a parent revision for D55303: [RISCV] Add lowering of addressing sequences for PIC: D55325: [RISCV] Add assembler support for LA pseudo-instruction.
Dec 10 2018, 7:46 PM
lewis-revill updated the diff for D55303: [RISCV] Add lowering of addressing sequences for PIC.

Rebased and updated to use and expand PseudoLA.

Dec 10 2018, 7:42 PM
lewis-revill added inline comments to D55279: [RISCV] Support assembling %got_pcrel_hi operator.
Dec 10 2018, 7:24 PM · Restricted Project
lewis-revill added a comment to D55279: [RISCV] Support assembling %got_pcrel_hi operator.

Do you need to add a check for RISCV::fixup_riscv_pcrel_hi20 in getPcRelHiExpr? Currently this is returning null and causing a segfault when running your relocations.s tests.

Dec 10 2018, 7:16 PM · Restricted Project
lewis-revill requested changes to D55279: [RISCV] Support assembling %got_pcrel_hi operator.

Do you need to add a check for RISCV::fixup_riscv_pcrel_hi20 in getPcRelHiExpr? Currently this is returning null and causing a segfault when running your relocations.s tests.

Dec 10 2018, 7:14 PM · Restricted Project
lewis-revill planned changes to D55303: [RISCV] Add lowering of addressing sequences for PIC.

Rebasing with latest changes to D55279 and modifying this patch to use and expand PseudoLA (D55325).

Dec 10 2018, 8:49 AM
lewis-revill updated the diff for D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.

Rebased and updated to use and expand PseudoLLA for PC-relative addressing.

Dec 10 2018, 8:49 AM · Restricted Project
lewis-revill planned changes to D54143: [RISCV] Generate address sequences suitable for mcmodel=medium.

Rebasing and modifying this patch to use and expand PseudoLLA instead of introducing a new wrapper.

Dec 10 2018, 4:36 AM · Restricted Project

Dec 7 2018

lewis-revill updated the diff for D55335: [RISCV] Support assembling @plt symbol operands.

Address minor issues.

Dec 7 2018, 2:05 PM · Restricted Project