rogfer01 (Roger Ferrer Ibanez)
User

Projects

User does not belong to any projects.

User Details

User Since
May 10 2016, 6:42 AM (79 w, 5 d)

Recent Activity

Wed, Nov 15

rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

A combiner kicks in for t33 because it is of the form (add, X, (addcarry Y, 0, C) and then it becomes (addcarry X, Y, C) which looks correct but I think it interacts badly with the nodes t24, t44 and t42 (which also have similar forms).

Wed, Nov 15, 10:04 AM
rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Hmm, scheduling is correct. I was all wrong, the legalized DAG is already wrong.

Wed, Nov 15, 9:59 AM

Tue, Nov 14

rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Thanks a lot for the pointer Eli! :-)

Tue, Nov 14, 11:51 PM
rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Uploaded

DAG after isel.

Tue, Nov 14, 9:53 AM
rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

I'm trying to understand what went wrong in the following input

Tue, Nov 14, 9:46 AM
rogfer01 added inline comments to D38378: [ARM] Optimize {s,u}{add,sub}.with.overflow..
Tue, Nov 14, 12:08 AM

Fri, Nov 3

rogfer01 added inline comments to D39599: [ARM] Fix incorrect conversion of a tail call to an ordinary call.
Fri, Nov 3, 8:22 AM

Thu, Nov 2

rogfer01 added a comment to D38362: Mark tests as unsupported in C++98 as well.

Thank you @mclow.lists !

Thu, Nov 2, 8:02 AM
rogfer01 committed rL317210: Mark tests as unsupported in C++98 as well.
Mark tests as unsupported in C++98 as well
Thu, Nov 2, 8:02 AM
rogfer01 closed D38362: Mark tests as unsupported in C++98 as well by committing rL317210: Mark tests as unsupported in C++98 as well.
Thu, Nov 2, 8:02 AM

Wed, Nov 1

rogfer01 planned changes to D35192: [ARM] Use ADDCARRY / SUBCARRY.
Wed, Nov 1, 7:09 AM
rogfer01 reopened D35192: [ARM] Use ADDCARRY / SUBCARRY.

This is causing PR35103, so reopening after the revert, so I can investigate what is going wrong there.

Wed, Nov 1, 7:08 AM
rogfer01 committed rL317092: Revert r313618 "[ARM] Use ADDCARRY / SUBCARRY".
Revert r313618 "[ARM] Use ADDCARRY / SUBCARRY"
Wed, Nov 1, 7:07 AM

Oct 16 2017

rogfer01 added inline comments to D38942: [DAG] Promote ADDCARRY / SUBCARRY.
Oct 16 2017, 11:30 PM
rogfer01 added a reviewer for D38942: [DAG] Promote ADDCARRY / SUBCARRY: samparker.
Oct 16 2017, 12:49 AM
rogfer01 added inline comments to D38942: [DAG] Promote ADDCARRY / SUBCARRY.
Oct 16 2017, 12:49 AM
rogfer01 created D38942: [DAG] Promote ADDCARRY / SUBCARRY.
Oct 16 2017, 12:47 AM

Oct 12 2017

rogfer01 updated the diff for D34515: [ARM] Materialise some boolean values to avoid a branch.

ChangeLog:

  • Reinstate the transformation for ARM as well.
Oct 12 2017, 4:05 AM
rogfer01 committed rL315570: Mark test as a long-test.
Mark test as a long-test
Oct 12 2017, 1:46 AM
rogfer01 closed D38452: Mark test as a long-test by committing rL315570: Mark test as a long-test.
Oct 12 2017, 1:46 AM

Oct 10 2017

rogfer01 added a comment to D38452: Mark test as a long-test.

Friendly ping :)

Oct 10 2017, 6:28 AM
rogfer01 committed rL315278: Remove unneeded typename from test.
Remove unneeded typename from test
Oct 10 2017, 12:42 AM
rogfer01 closed D38628: Remove unneeded typename from test by committing rL315278: Remove unneeded typename from test.
Oct 10 2017, 12:42 AM
rogfer01 added a comment to D38628: Remove unneeded typename from test.

Thanks @chill , @mclow.lists and @EricWF !

Oct 10 2017, 12:42 AM
rogfer01 added a comment to D34515: [ARM] Materialise some boolean values to avoid a branch.

@efriedma Ah I see. If I get you right, the initial change was more sensible. Also Sam's concerns were on a file that is explicitly marked as -O0.

Oct 10 2017, 12:23 AM

Oct 9 2017

rogfer01 updated the diff for D38628: Remove unneeded typename from test.
  • Remove another instance of this issue
Oct 9 2017, 12:40 AM

Oct 6 2017

rogfer01 added inline comments to D34515: [ARM] Materialise some boolean values to avoid a branch.
Oct 6 2017, 10:06 AM
rogfer01 added inline comments to D34515: [ARM] Materialise some boolean values to avoid a branch.
Oct 6 2017, 9:50 AM
rogfer01 updated the diff for D38362: Mark tests as unsupported in C++98 as well.

ChangeLog:

  • I wanted to mark two tests but forgot to add one in the previous change
Oct 6 2017, 8:28 AM
rogfer01 created D38628: Remove unneeded typename from test.
Oct 6 2017, 8:26 AM

Oct 5 2017

rogfer01 added inline comments to D34515: [ARM] Materialise some boolean values to avoid a branch.
Oct 5 2017, 9:07 AM
rogfer01 updated the diff for D34515: [ARM] Materialise some boolean values to avoid a branch.

ChangeLog:

  • Reordered combiner and added early exit for non-integers.
  • Constrained the CLZ combiner to T32 because it is not clear whether it is profitable in A32 (where conditional moves are more accessible)
  • Added negative tests to make sure no branches are emitted where we don't want them.
Oct 5 2017, 9:07 AM

Oct 3 2017

rogfer01 added inline comments to rL314735: Improve test runner output for broken configurations..
Oct 3 2017, 9:41 AM

Oct 2 2017

rogfer01 created D38452: Mark test as a long-test.
Oct 2 2017, 3:36 AM

Sep 29 2017

rogfer01 added inline comments to rL314375: Use a BumpPtrAllocator for Loop objects.
Sep 29 2017, 1:37 AM

Sep 28 2017

rogfer01 added inline comments to D34515: [ARM] Materialise some boolean values to avoid a branch.
Sep 28 2017, 9:41 AM
rogfer01 created D38362: Mark tests as unsupported in C++98 as well.
Sep 28 2017, 7:53 AM
rogfer01 added a comment to D34515: [ARM] Materialise some boolean values to avoid a branch.

Friendly ping :)

Sep 28 2017, 7:11 AM

Sep 21 2017

rogfer01 added inline comments to D34515: [ARM] Materialise some boolean values to avoid a branch.
Sep 21 2017, 8:24 AM
rogfer01 updated the diff for D34515: [ARM] Materialise some boolean values to avoid a branch.

ChangeLog:

  • Updated the patch to use ADDCARRY / SUBCARRY nodes.
Sep 21 2017, 8:21 AM

Sep 19 2017

rogfer01 committed rL313618: [ARM] Use ADDCARRY / SUBCARRY.
[ARM] Use ADDCARRY / SUBCARRY
Sep 19 2017, 2:07 AM
rogfer01 closed D35192: [ARM] Use ADDCARRY / SUBCARRY by committing rL313618: [ARM] Use ADDCARRY / SUBCARRY.
Sep 19 2017, 2:07 AM

Sep 14 2017

rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Ok, Chrome for Linux Arm took a bit to build with a debug compiler but finished successfully.

Sep 14 2017, 6:09 AM

Sep 13 2017

rogfer01 accepted D34695: _Float16 preprocessor macro definitions.

This LGTM, but wait a couple of days before comitting in case @rsmith or @scanon (or others!) have further comments.

Sep 13 2017, 7:57 AM
rogfer01 requested review of D35192: [ARM] Use ADDCARRY / SUBCARRY.

In the second instance of PR34045 what happens is that ADDC is exactly HiAdd, not just a predecessor of the latter.

Sep 13 2017, 1:34 AM
rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • fix for the second instance of PR34045
  • also integrates the changes to fix PR34564, fall-out of the original change, that was reverted as well
Sep 13 2017, 1:30 AM

Sep 12 2017

rogfer01 reopened D35192: [ARM] Use ADDCARRY / SUBCARRY.

We're still hitting PR34045. I also plan integrate the fix in D37690 to ease reverting if needed.

Sep 12 2017, 9:41 AM
rogfer01 added inline comments to D34695: _Float16 preprocessor macro definitions.
Sep 12 2017, 8:56 AM
rogfer01 added inline comments to D34695: _Float16 preprocessor macro definitions.
Sep 12 2017, 8:32 AM
rogfer01 committed rL313010: [ARM] Fix typo when creating ISD::SUB nodes.
[ARM] Fix typo when creating ISD::SUB nodes
Sep 12 2017, 12:44 AM
rogfer01 closed D37690: [ARM] Fix typo when creating ISD::SUB nodes by committing rL313010: [ARM] Fix typo when creating ISD::SUB nodes.
Sep 12 2017, 12:43 AM
rogfer01 committed rL313009: [ARM] Use ADDCARRY / SUBCARRY.
[ARM] Use ADDCARRY / SUBCARRY
Sep 12 2017, 12:41 AM
rogfer01 updated the diff for D37690: [ARM] Fix typo when creating ISD::SUB nodes.

ChangeLog:

  • Use MVT::i32 instead of VT
Sep 12 2017, 12:35 AM

Sep 11 2017

rogfer01 added a comment to D37690: [ARM] Fix typo when creating ISD::SUB nodes.

This blunder of mine caused PR34564.

Sep 11 2017, 11:57 PM
rogfer01 created D37690: [ARM] Fix typo when creating ISD::SUB nodes.
Sep 11 2017, 7:45 AM
rogfer01 committed rL312898: [ARM] Use ADDCARRY / SUBCARRY.
[ARM] Use ADDCARRY / SUBCARRY
Sep 11 2017, 12:39 AM
rogfer01 closed D35192: [ARM] Use ADDCARRY / SUBCARRY by committing rL312898: [ARM] Use ADDCARRY / SUBCARRY.
Sep 11 2017, 12:39 AM
rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Thanks for the review Eli!

Sep 11 2017, 12:31 AM

Sep 8 2017

rogfer01 updated subscribers of D35192: [ARM] Use ADDCARRY / SUBCARRY.
Sep 8 2017, 9:50 AM
rogfer01 added inline comments to D35192: [ARM] Use ADDCARRY / SUBCARRY.
Sep 8 2017, 9:49 AM
rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • Fix problem in S/UMLAL combiner that caused PR34045.
  • New bugpoint-reduced test based on the reproducer of PR34045.
Sep 8 2017, 9:45 AM

Aug 29 2017

rogfer01 accepted D33719: Add _Float16 as a C/C++ source language type.

This LGTM now. Wait a couple of days in case @rsmith has more comments.

Aug 29 2017, 9:00 AM
rogfer01 added a comment to D33719: Add _Float16 as a C/C++ source language type.

There are a few tests checking the precise interaction between __fp16 and _Float16 values but I don't see tests interacting _Float16 and the other standard floating types float, double and long double.

Aug 29 2017, 7:39 AM

Aug 3 2017

rogfer01 reopened D35192: [ARM] Use ADDCARRY / SUBCARRY.

Reopening: this is causing PR34045.

Aug 3 2017, 11:45 PM
rogfer01 committed rL309923: [ARM] Use ADDCARRY / SUBCARRY.
[ARM] Use ADDCARRY / SUBCARRY
Aug 3 2017, 12:46 AM
rogfer01 closed D35192: [ARM] Use ADDCARRY / SUBCARRY by committing rL309923: [ARM] Use ADDCARRY / SUBCARRY.
Aug 3 2017, 12:45 AM

Aug 1 2017

rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

I plan to submit this tomorrow morning (BST time).

Aug 1 2017, 7:22 AM
rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • clang-format fixes
Aug 1 2017, 7:21 AM

Jul 26 2017

rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • Remove unnecessary combiner for ARMISD::SUBC
  • Refactor a bit the conversion carry to/from boolean
Jul 26 2017, 9:02 AM

Jul 19 2017

rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • Use ISD::SUB instead of ARMISD::SUBC when inverting the borrow / carry.
  • Due to the above, remove now unnecessary target-specific combiner.
Jul 19 2017, 7:42 AM
rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Hi @efriedma thanks for your suggestion, this way I can avoid one target-specific combiner which I have now removed.

Jul 19 2017, 7:42 AM

Jul 18 2017

rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Hi @efriedma, thanks for the review, please find the updated changes. I was wrongly handling ISD::SUBCARRY because its operand is a borrow while ARMISD::SUBE expects a carry.

Jul 18 2017, 9:36 AM
rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • Correctly handle the second operand of ISD::SUBCARRY. We need to invert its value (i.e. 1-x) before passing it to ARMISD::SUBE, also the result of ARMISD::SUBE has to be inverted again to match what ISD::SUBCARRY means.
  • Fix USUBO lowering as a consequence of the above.
  • Add a combiner for (SUBC 1, (SUBC 1, X)) → X
  • Compute the known bits of (SUBC 1, (ADDE 0, 0, C)) (1 bit) to avoid spurious and instructions.
  • Update the tests for usub_builtin_overflow with the correct code generation.
  • Remove combiners that became pointless after the changes above.
Jul 18 2017, 9:33 AM

Jul 14 2017

rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Thanks again @efriedma.

Jul 14 2017, 2:19 AM
rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • Remove incorrect computation of known bits for an operand that contains a copy of the CPSR and not a boolean.
Jul 14 2017, 2:17 AM

Jul 13 2017

rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Hi @efriedma, thanks again for the comments. I have updated the diff with your suggestions.

Jul 13 2017, 7:23 AM
rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • Use a single file for the new tests instead of scattering them in two files.
  • Fix a bug introduced when ARMTargetLowering::computeKnownBitsForTargetNode was updated.
Jul 13 2017, 7:12 AM

Jul 12 2017

rogfer01 added a comment to D35192: [ARM] Use ADDCARRY / SUBCARRY.

Hi @efriedma, thanks for the review. I have updated with your suggestions.

Jul 12 2017, 8:47 AM
rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • Fix combiners so they preserve the arity of the result.
  • Remove bogus combiner.
  • Add new tests for {u,s}{add,sub} overflow for Thumb and Thumb2
Jul 12 2017, 8:45 AM

Jul 10 2017

rogfer01 updated the diff for D35192: [ARM] Use ADDCARRY / SUBCARRY.

ChangeLog:

  • clang-format LowerUnsignedALUO
  • fix FileCheck test
Jul 10 2017, 5:34 AM
rogfer01 updated subscribers of D35192: [ARM] Use ADDCARRY / SUBCARRY.
Jul 10 2017, 3:07 AM
rogfer01 added a comment to D34515: [ARM] Materialise some boolean values to avoid a branch.

Hi Eli,

Jul 10 2017, 2:44 AM
rogfer01 added a dependent revision for D35192: [ARM] Use ADDCARRY / SUBCARRY: D34515: [ARM] Materialise some boolean values to avoid a branch.
Jul 10 2017, 2:43 AM
rogfer01 added a dependency for D34515: [ARM] Materialise some boolean values to avoid a branch: D35192: [ARM] Use ADDCARRY / SUBCARRY.
Jul 10 2017, 2:43 AM
rogfer01 added inline comments to D35192: [ARM] Use ADDCARRY / SUBCARRY.
Jul 10 2017, 2:43 AM
rogfer01 created D35192: [ARM] Use ADDCARRY / SUBCARRY.
Jul 10 2017, 2:40 AM

Jul 7 2017

rogfer01 added a comment to D35108: Fix crash parsing invalid code.

Hi @ogoffart thanks for fixing this.

Jul 7 2017, 12:56 AM

Jul 6 2017

rogfer01 added a comment to D34515: [ARM] Materialise some boolean values to avoid a branch.

thanks for pointing me to the ADDCARRY/SUBCARRY nodes. I tried to use them but I ran into serious problems (maybe due to some inexperience on my side working with SelectionDAG). First if I want to use them I assume I have to make them legal for the ARM back end, this means that I have to lower them somehow. After the short discussion in the list about the semantics of SUBCARRY I made ISD::ADDCARRY to lower to ARMISD::ADDC and ISD::SUBCARRY to lower to ARMISD::SUBC plus doing an extra (ISD::ADD 1, c) to the carry result, to change from borrow semantics (ISD::SUBCARRY semantics) to ARM carry semantics.

Jul 6 2017, 9:55 AM

Jun 30 2017

rogfer01 accepted D34686: [AArch64] ARMV8-A archkind and target defines helper functions.

This LGTM. Thanks for the refactoring and the fix.

Jun 30 2017, 12:31 AM

Jun 28 2017

rogfer01 added a comment to D34686: [AArch64] ARMV8-A archkind and target defines helper functions.

I agree with the spirit of the change but I think you want to use AArch64:: enumerators instead of those in ARM::

Jun 28 2017, 3:13 AM

Jun 23 2017

rogfer01 updated subscribers of D34515: [ARM] Materialise some boolean values to avoid a branch.
Jun 23 2017, 3:12 AM

Jun 22 2017

rogfer01 created D34515: [ARM] Materialise some boolean values to avoid a branch.
Jun 22 2017, 8:41 AM

Jun 16 2017

rogfer01 added a comment to D33676: Place implictly declared functions at block scope.

Thanks Momchil, this looks sensible to me.

Jun 16 2017, 5:48 AM

Jun 15 2017

rogfer01 added inline comments to D33719: Add _Float16 as a C/C++ source language type.
Jun 15 2017, 1:26 AM

Jun 12 2017

rogfer01 committed rL305181: Export the required symbol from DynamicLibraryTests.
Export the required symbol from DynamicLibraryTests
Jun 12 2017, 12:22 AM
rogfer01 closed D33789: Export the required symbol from DynamicLibraryTests by committing rL305181: Export the required symbol from DynamicLibraryTests.
Jun 12 2017, 12:22 AM

Jun 8 2017

rogfer01 added a comment to D33676: Place implictly declared functions at block scope.

Given that we are already considering extensions, maybe you want to add a test for compound statements in expressions.

Jun 8 2017, 1:03 AM

Jun 5 2017

rogfer01 added a comment to D33789: Export the required symbol from DynamicLibraryTests.

This LGTM, @marsupial what do you think?

Jun 5 2017, 4:06 AM
rogfer01 accepted D33413: Add support for #pragma clang section.
Jun 5 2017, 12:46 AM
rogfer01 accepted D33412: Add support for #pragma clang section.
Jun 5 2017, 12:46 AM