Page MenuHomePhabricator
Feed Advanced Search

Thu, Mar 19

apazos added a comment to D57497: [RISCV] Passing small data limitation value to RISCV backend.

Thanks Shiva, making it alias of -G makes sense, LGTM.

Thu, Mar 19, 6:59 AM · Restricted Project
apazos added a comment to D48430: [RISCV] Add support for lowering jumptables.

It looks like it needs more work indeed. Enabling it won't build compiler-rt.

Thu, Mar 19, 6:59 AM

Tue, Mar 17

apazos added a comment to D48430: [RISCV] Add support for lowering jumptables.

Alex, we have not yet merged this patch. We should merge it and we can leave the default as GCC.
This makes our code size gap with GCC smaller.
In the past I did see degradation in some SiFive hardware (I think it was on HiFive1 board). Maybe some of the SiFive colleagues can look at it at some point.

Tue, Mar 17, 8:32 PM
apazos added a comment to D57497: [RISCV] Passing small data limitation value to RISCV backend.

Shiva, how about making the flag small-data-limit alias of -msmall-data-threshold?

Tue, Mar 17, 4:13 PM · Restricted Project

Thu, Mar 12

apazos added a comment to D57497: [RISCV] Passing small data limitation value to RISCV backend.

Thanks Shiva, I res-ynced and rebuilt the patch. It is working fine.

Thu, Mar 12, 12:28 PM · Restricted Project

Wed, Mar 11

apazos added a comment to D57497: [RISCV] Passing small data limitation value to RISCV backend.

Shiva, I am not sure how the SDataLimit is being honored in LTO mode.
Where does getModuleMetadata get called?
If the SelectSectionForGlobal api is called without getModuleMetadata being called first, it will use the default 8 instead of honoring the SDataLimit.

Wed, Mar 11, 6:10 PM · Restricted Project
apazos added a comment to D57497: [RISCV] Passing small data limitation value to RISCV backend.

Shiva, I see a warning always being printed:

Wed, Mar 11, 1:01 PM · Restricted Project

Mon, Mar 9

apazos added a comment to D57497: [RISCV] Passing small data limitation value to RISCV backend.

Shiva, we forgot about this patch. Can you rebase it so we move on with merging.

Mon, Mar 9, 4:12 PM · Restricted Project

Thu, Feb 27

apazos added inline comments to D74023: [RISCV] ELF attribute section for RISC-V.
Thu, Feb 27, 7:36 AM · Restricted Project, Restricted Project

Feb 19 2020

apazos added inline comments to D74023: [RISCV] ELF attribute section for RISC-V.
Feb 19 2020, 5:29 PM · Restricted Project, Restricted Project

Feb 4 2020

apazos added inline comments to D73555: [SVE] Fix bug in simplification of scalable vector instructions.
Feb 4 2020, 11:17 AM · Restricted Project

Jan 31 2020

apazos added inline comments to D73339: [RISCV] Compress instructions based on function features.
Jan 31 2020, 3:49 PM · Restricted Project
apazos added a comment to D73339: [RISCV] Compress instructions based on function features.

Thanks for catching this issue, Simon. Alex, will this be cherry-picked to the branch?

Jan 31 2020, 3:40 PM · Restricted Project

Jan 14 2020

apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Lewis, your latest patch looks good, we just had another run with no new failures. But we know it will have issues with -g. So I think we should not merge it yet. Do you have a version of the patch that creates the labels for the compiler-generated save/restore lib calls, so that this optimization does not depend on D71593? We could merge that version then, and when D71593 is accepted, you just have to rework/remove the label generation part of the patch.

Jan 14 2020, 3:23 PM · Restricted Project, Restricted Project

Jan 7 2020

apazos added a comment to D62190: [RISCV] Allow shrink wrapping for RISC-V.

Lewis, same question, is the patch final? It would be good to merge it before the 10.0 release branch creation on Jan 15th

Jan 7 2020, 8:39 AM · Restricted Project
apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Lewis, is the patch final? It would be good to merge it before the 10.0 release branch creation on Jan 15th

Jan 7 2020, 8:39 AM · Restricted Project, Restricted Project

Dec 19 2019

apazos added a comment to D66210: [RISCV] Enable the machine outliner for RISC-V.

Thanks Lewis for providing the test case. A bug can be opened for the machine outliner with that example. In my opinion you can go ahead and merge this patch.

Dec 19 2019, 8:33 AM · Restricted Project

Dec 17 2019

apazos added a comment to D66210: [RISCV] Enable the machine outliner for RISC-V.

Can you open a bug for the machine outliner and maybe contact Jessica, may be she can help fix this quickly.

Dec 17 2019, 7:52 AM · Restricted Project

Dec 16 2019

apazos committed rGd7af86bdd0bd: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes() (authored by apazos).
[RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes()
Dec 16 2019, 3:18 PM
apazos closed D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().
Dec 16 2019, 3:18 PM · Restricted Project
apazos updated the diff for D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().

Rebased

Dec 16 2019, 3:02 PM · Restricted Project
apazos added a comment to D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().

My commit permissions were fixed last week, I will rebase and merge.

Dec 16 2019, 2:07 PM · Restricted Project

Dec 3 2019

apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Lewis, try rebasing it, not applying cleanly nor https://reviews.llvm.org/D62190

Dec 3 2019, 4:46 PM · Restricted Project, Restricted Project
apazos added a comment to D62190: [RISCV] Allow shrink wrapping for RISC-V.

Lewis, try rebase again, not applying cleaning, nor https://reviews.llvm.org/D62686

Dec 3 2019, 4:46 PM · Restricted Project
apazos added a comment to D66210: [RISCV] Enable the machine outliner for RISC-V.

Lewis, I tested the latest version of this patch (with and without https://reviews.llvm.org/D68290), I don't see any issue. LGTM.

Dec 3 2019, 4:46 PM · Restricted Project
apazos updated the diff for D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().

Rebased.
With this change, the regressions observed with the machine outliner are eliminated.
Sam, I don't think any one has reviewed yet.

Dec 3 2019, 4:37 PM · Restricted Project

Dec 2 2019

apazos added a comment to D70030: [MachineBlockPlacement] Fix UnscheduledPredecessors counter to reflect tail duplication..

The change looks good to me. Thanks for adding the test!

Dec 2 2019, 10:25 AM · Restricted Project

Oct 17 2019

apazos added a comment to D62190: [RISCV] Allow shrink wrapping for RISC-V.

Lewis, I am not seeing any code change.

Oct 17 2019, 3:25 PM · Restricted Project
apazos added a comment to D68979: [RISCV] Handle variable sized objects with the stack need to be realigned.

Shiva, I have tried a few workloads like EEMBC, SPEC2000/2006, perennial c++, plumhall.
They don't seem to use variable length arrays nor allocas to test this patch.
Which test suite are you using?

Oct 17 2019, 3:06 PM · Restricted Project
apazos added a comment to D68979: [RISCV] Handle variable sized objects with the stack need to be realigned.

Hi Shiva, I will evaluate your patch today and report back.

Oct 17 2019, 8:40 AM · Restricted Project
apazos added a comment to D68644: [RISCV] Prevent unsafe shrink wrapping with save/restore enabled.

Thanks Lewis, I applied this patch with its dependencies, ran -msave-restore -mllvm -enable-shrink-wrap config, and I see no failures.

Oct 17 2019, 8:40 AM · Restricted Project
apazos added a comment to D62190: [RISCV] Allow shrink wrapping for RISC-V.

Thanks Lewis, I applied the patch and I am not detecting any new failure with this feature.

Oct 17 2019, 8:40 AM · Restricted Project

Oct 16 2019

apazos added a comment to D62190: [RISCV] Allow shrink wrapping for RISC-V.

Lewis, this patch is not applying clean on top of https://reviews.llvm.org/D62686. Can you please rebase?

Oct 16 2019, 10:11 PM · Restricted Project
apazos added inline comments to D68685: [RISCV] Scheduler description for Rocket Core.
Oct 16 2019, 5:37 PM · Restricted Project
apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Thanks Lewis, the runs are looking good, no failures, and good code size savings (average 3%)

Oct 16 2019, 2:06 PM · Restricted Project, Restricted Project

Oct 15 2019

apazos updated the diff for D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().

Added check to verify whether MI is parentless or not because isCompressible call depends of function/module info.

Oct 15 2019, 12:23 PM · Restricted Project
apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Is it worth trying to disallow tail call optimization completely if this flag is enabled? I'm not sure what GCC does exactly. but this seems to be the behaviour.

Oct 15 2019, 11:35 AM · Restricted Project, Restricted Project

Oct 14 2019

apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Yes Eli thanks for pointing out there are more scenarios that can fail.
It looks like the best solution is to permit both flags on, but then bail out from doing this transformation if there is any type of tail call already in the function.
This way we avoid messing with reverting tail calls back to regular calls.

Oct 14 2019, 5:28 PM · Restricted Project, Restricted Project
apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Here is the bugpoint-reduced test case for the SPEC failure when enabling -msave-restore and allowing tail calls:

Oct 14 2019, 4:00 PM · Restricted Project, Restricted Project

Oct 10 2019

apazos updated subscribers of D62190: [RISCV] Allow shrink wrapping for RISC-V.
Oct 10 2019, 8:21 AM · Restricted Project

Oct 7 2019

apazos added a comment to D66210: [RISCV] Enable the machine outliner for RISC-V.

Lewis, this patch LGTM. You can go ahead and merge it.

Oct 7 2019, 1:57 PM · Restricted Project
apazos retitled D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes() from [RISCV] WIP better estimate size of outlined block with C extension enabled to [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().
Oct 7 2019, 1:53 PM · Restricted Project
apazos updated the diff for D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().
Oct 7 2019, 1:52 PM · Restricted Project

Oct 4 2019

apazos committed rGea835f5ce841: [RISCV] Added missing ImmLeaf predicates (authored by apazos).
[RISCV] Added missing ImmLeaf predicates
Oct 4 2019, 4:46 PM
apazos committed rL373812: [RISCV] Added missing ImmLeaf predicates.
[RISCV] Added missing ImmLeaf predicates
Oct 4 2019, 4:40 PM
apazos added inline comments to D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().
Oct 4 2019, 3:51 PM · Restricted Project

Oct 3 2019

apazos added inline comments to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.
Oct 3 2019, 9:01 PM · Restricted Project, Restricted Project
apazos added a comment to D62190: [RISCV] Allow shrink wrapping for RISC-V.

There are some additional perennial test suite failures when applying this patch and enabling -mllvm -enable-shrink-wrap.
When Lewis updates the patch to be standalone, we can verify it again.

Oct 3 2019, 3:18 PM · Restricted Project
apazos added a comment to D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().

Thanks Alex and Lewis.
I will break the patch in 3 commits:

  1. fix missing ImmLeaf predicate, which I will merge directly (no review).
  2. Compress Instr table gen back end changes. I will post this patch for review.
  3. Modify getInstSizeInBytes to invoke isCompressibleInst (thanks for the name fix!). This one I will run a few more correctness tests, and then post for review.
Oct 3 2019, 10:16 AM · Restricted Project

Oct 2 2019

apazos added inline comments to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.
Oct 2 2019, 8:07 PM · Restricted Project, Restricted Project
apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Lewis, with this patch we see less failures. But still some tests in SPEC and perennial test suites are failing.

Oct 2 2019, 2:55 PM · Restricted Project, Restricted Project

Oct 1 2019

apazos added a comment to D66210: [RISCV] Enable the machine outliner for RISC-V.

Hi Lewis,
Here is the change: https://reviews.llvm.org/D68290
With this change I was able to remove the code size degradation I had observed.
Please try it out.

Oct 1 2019, 4:03 PM · Restricted Project
apazos added a comment to D62686: [RISCV] Add support for save/restore of callee-saved registers via libcalls.

Thanks for the patch update. I will launch some new correctness runs.

Oct 1 2019, 12:47 PM · Restricted Project, Restricted Project
apazos updated subscribers of D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().
Oct 1 2019, 12:45 PM · Restricted Project
apazos created D68290: [RISCV] Added isCompressibleInst() to estimate size in getInstSizeInBytes().
Oct 1 2019, 12:45 PM · Restricted Project

Sep 26 2019

apazos added a comment to D66210: [RISCV] Enable the machine outliner for RISC-V.

I have run a couple of standard workloads like SPEC.
There is no correctness issue when enabling the MO feature (except for spec2000/twolf which fails with/without MO).
The MO code size gains without compression are up to 7%. With compression enabled, most of the code size gain is gone, and I see more code size increase.
It is possible it has to do with the SequenceSize we are estimating.
The reason we enable compression late is to have all paths - coming from codegen (LLVM IR), parsing, assembling .s or inline asm - go through the same mechanism for compression.
This is similar/compatible with GCC behavior, which relies on the external assembler to implement compression.
We can better estimate SequenceSize by checking if an instruction is compressable. We can modify the tablegen backend for compression emitter to generate a function that does the isCompressable check, but instead of using MCInst and MCOperands for the checks, we need to use MachineInstr and MachineOperand types. I will try this solution. Another alternative is to compress LLVM IR code before running the machine outliner.

Sep 26 2019, 8:06 AM · Restricted Project

Aug 12 2019

apazos added inline comments to D65950: [RISCV] Add Option for Printing Architectural Register Names.
Aug 12 2019, 2:52 PM · Restricted Project
apazos added a comment to D66081: [RISCV] Fix ICE in isDesirableToCommuteWithShift.

Thanks Sam, LGTM.

Aug 12 2019, 2:44 PM · Restricted Project

Aug 9 2019

apazos updated subscribers of D64425: [RISCV] Fix ICE in isDesirableToCommuteWithShift.
Aug 9 2019, 12:14 PM · Restricted Project

Mar 28 2019

apazos added inline comments to D57493: [RISCV] Put data smaller than eight bytes to small data section.
Mar 28 2019, 5:01 PM · Restricted Project

Mar 27 2019

apazos added inline comments to D57497: [RISCV] Passing small data limitation value to RISCV backend.
Mar 27 2019, 1:59 PM · Restricted Project

Mar 20 2019

apazos added inline comments to D59592: [RISCV] support ilp32e Calling Convention.
Mar 20 2019, 3:33 PM · Restricted Project
apazos added a comment to D59470: [RISCV] Add basic RV32E definitions and MC layer support.

Thanks Alex, LGTM

Mar 20 2019, 2:56 PM · Restricted Project
apazos added inline comments to D59470: [RISCV] Add basic RV32E definitions and MC layer support.
Mar 20 2019, 2:52 PM · Restricted Project
apazos added inline comments to D57497: [RISCV] Passing small data limitation value to RISCV backend.
Mar 20 2019, 2:05 PM · Restricted Project
apazos added inline comments to D57493: [RISCV] Put data smaller than eight bytes to small data section.
Mar 20 2019, 1:47 PM · Restricted Project

Mar 8 2019

apazos committed rG5254d1baae63: [RISCV] Allow access to FP CSRs without F extension (authored by apazos).
[RISCV] Allow access to FP CSRs without F extension
Mar 8 2019, 3:01 PM
apazos committed rL355753: [RISCV] Allow access to FP CSRs without F extension.
[RISCV] Allow access to FP CSRs without F extension
Mar 8 2019, 3:01 PM
apazos closed D58932: [RISCV] Allow access to FP CSRs without F extension.
Mar 8 2019, 3:01 PM · Restricted Project
apazos added a comment to D59023: [RISCV] Support -target-abi at the MC layer and for codegen.

Thanks Alex, LGTM.

Mar 8 2019, 1:49 PM · Restricted Project
apazos added inline comments to D59023: [RISCV] Support -target-abi at the MC layer and for codegen.
Mar 8 2019, 10:00 AM · Restricted Project

Mar 7 2019

apazos updated the diff for D58932: [RISCV] Allow access to FP CSRs without F extension.

Leaving pseudo instructions that access FP CSRs untouched for now.

Mar 7 2019, 1:25 PM · Restricted Project
apazos added a comment to D58932: [RISCV] Allow access to FP CSRs without F extension.

OK, I can restrict the patch to access CSR names and value range without F extension, while we wait GCC and the RISC-V specs to be updated.

Mar 7 2019, 8:56 AM · Restricted Project

Mar 6 2019

apazos added a comment to D58943: [RISCV][MC] Find matching pcrel_hi fixup in more cases..

LGTM, I have verified the patch with some workloads and found no new issue.

Mar 6 2019, 6:33 PM · Restricted Project
apazos added inline comments to D59023: [RISCV] Support -target-abi at the MC layer and for codegen.
Mar 6 2019, 6:27 PM · Restricted Project
apazos abandoned D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.

We are going with the alternative in https://reviews.llvm.org/D58943

Mar 6 2019, 4:56 PM

Mar 4 2019

apazos added a comment to D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.

Hi Eli, this current patch as it is fails for the test case you highlighted. Thanks for clarifying and pushing an alternative solution.

Mar 4 2019, 8:33 PM
apazos created D58932: [RISCV] Allow access to FP CSRs without F extension.
Mar 4 2019, 3:39 PM · Restricted Project
apazos added a comment to D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.

Hi Eli,

Mar 4 2019, 1:43 PM
apazos retitled D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi from Fixed error: could not find corresponding %pcrel_hi to [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.
Mar 4 2019, 10:15 AM

Mar 1 2019

apazos abandoned D58485: [WIP] Experimenting with aligning with GCC LIR behavior at Os.

Not profitable

Mar 1 2019, 5:09 PM
apazos updated subscribers of D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.
Mar 1 2019, 2:09 PM
apazos updated the diff for D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.

Updated triple in test case

Mar 1 2019, 1:27 PM
apazos retitled D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi from [RISCV] (WIP) Fixed error: could not find corresponding %pcrel_hi to Fixed error: could not find corresponding %pcrel_hi.
Mar 1 2019, 1:25 PM
apazos edited reviewers for D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi, added: eli.friedman; removed: lewis-revill.
Mar 1 2019, 1:11 PM
apazos updated subscribers of D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.
Mar 1 2019, 1:10 PM
apazos updated the diff for D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.

Reduced code changes, added test case

Mar 1 2019, 1:09 PM
apazos added a comment to D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.

Hi Lewis, yes it is possible to reduce the code changes. I will push an update.
The concern I have is that for pseudo instructions it was enough to change RISCVAsmParser.cpp to fix the problem. But for the expanded instructions I have to modify AsmParser.cpp.
So maybe instead of adding a new EmitLabel we change the current api.

Mar 1 2019, 1:03 PM

Feb 27 2019

apazos added a reviewer for D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi: lewis-revill.

Lewis, is this what you had in mind, I only changed RISC-V parser path.

Feb 27 2019, 8:56 PM
apazos created D58759: [RISCV][MC] Fixed error: could not find corresponding %pcrel_hi.
Feb 27 2019, 8:50 PM
apazos added a comment to D54029: [RISCV] Properly evaluate fixup_riscv_pcrel_lo12.

Thanks for the analysis and suggestion Lewis.

Feb 27 2019, 8:48 PM · Restricted Project

Feb 20 2019

apazos created D58485: [WIP] Experimenting with aligning with GCC LIR behavior at Os.
Feb 20 2019, 6:11 PM
Herald added a project to D54029: [RISCV] Properly evaluate fixup_riscv_pcrel_lo12: Restricted Project.

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

Feb 20 2019, 1:01 PM · Restricted Project

Feb 14 2019

apazos committed rG6dbe86597a8f: Fixed failure on Darwin due to r354064 (authored by apazos).
Fixed failure on Darwin due to r354064
Feb 14 2019, 4:21 PM
apazos committed rC354089: Fixed failure on Darwin due to r354064.
Fixed failure on Darwin due to r354064
Feb 14 2019, 4:21 PM
apazos committed rL354089: Fixed failure on Darwin due to r354064.
Fixed failure on Darwin due to r354064
Feb 14 2019, 4:21 PM
apazos closed D58259: Fixed failure on Darwin due to r354064.
Feb 14 2019, 4:21 PM · Restricted Project
apazos created D58259: Fixed failure on Darwin due to r354064.
Feb 14 2019, 3:27 PM · Restricted Project
apazos committed rGbbb8129b2cdd: Set hidden attribute on lprofMergeValueProfData (authored by apazos).
Set hidden attribute on lprofMergeValueProfData
Feb 14 2019, 1:38 PM
apazos committed rCRT354064: Set hidden attribute on lprofMergeValueProfData.
Set hidden attribute on lprofMergeValueProfData
Feb 14 2019, 1:38 PM