Page MenuHomePhabricator

luismarques (Luís Marques)
Software/hardware engineer at lowRISC

Projects

User does not belong to any projects.

User Details

User Since
Nov 2 2018, 7:48 AM (98 w, 2 d)

Mostly LLVM work.

Recent Activity

Fri, Sep 18

luismarques added a comment to D80465: [RISCV-V] Provide muldi3 builtins for riscv.

Do other architectures with native 64-bit multiplication provide __muldi3? If yes, it should be re-enabled; if no, the test should be fixed. My assumption is it's the latter, but I can see the argument for having an RVM compiler-rt still provide __muldi3 in case linked against code that was compiled without RVM (but, really, that code should just be compiled with RVM).

Fri, Sep 18, 4:09 PM · Restricted Project
luismarques added a comment to D80465: [RISCV-V] Provide muldi3 builtins for riscv.

I noticed that this patch (along with D86036) caused a compiler-rt test to fail for riscv64 when M extension is enabled.
compiler-rt/test/builtins/Unit/muldi3_test.c:11: undefined reference to `muldi3'
Basically, with this patch,
muldi3 is no longer defined anymore for riscv64 when M extension is enabled. Any suggestion on how this should be fixed?

Fri, Sep 18, 4:03 PM · Restricted Project

Thu, Sep 17

luismarques added a comment to D85095: Fix libcxx build on riscv32.

I suppose that an alternative to this implementation might be to tweak the place of use of __NR_futex, like is done in [1]. Arguably that's cleaner. Or, in the place where you're currently checking for riscv32, check for the case where __NR_futex_ isn't defined but __NR_futex_time64 is, and #define the former in terms of the latter.

Thu, Sep 17, 8:44 AM · Restricted Project
luismarques added a comment to D85095: Fix libcxx build on riscv32.

I think this makes sense, but I'll let the #libc reviewers actually review/approve this.

Thu, Sep 17, 2:40 AM · Restricted Project
luismarques added a comment to D80690: [RISCV] Support libunwind for riscv32.

This seems roughly OK now. Does anyone with libunwind experience want to give it a thumbs up?
#libunwind people, does this LGTY?

Thu, Sep 17, 2:08 AM · Restricted Project, Restricted Project
luismarques accepted D86522: [RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl().

I was hoping others would chime in regarding what instructions should be handled in this hook.

Thu, Sep 17, 1:55 AM · Restricted Project

Mon, Sep 14

luismarques added a comment to D87576: [RISCV][ASAN] implementation of SignalContext::GetWriteFlag.

There is already an implementation of GetWriteFlag for RISC-V. It was provided by D75168, and you can find it in lines 2002-2105.

Mon, Sep 14, 7:12 AM · Restricted Project
luismarques added inline comments to D87577: [RISCV][ASAN] implementation for previous/next pc.
Mon, Sep 14, 6:56 AM · Restricted Project
luismarques added inline comments to D87579: [RISCV][ASAN] unwind fixup.
Mon, Sep 14, 6:43 AM · Restricted Project
luismarques requested changes to D87580: [RISCV][ASAN] support code for architecture-specific parts of asan.
Mon, Sep 14, 6:15 AM · Restricted Project
luismarques added inline comments to D87582: [RISCV][ASAN] mark asan as supported for RISCV and enable tests.
Mon, Sep 14, 5:07 AM · Restricted Project
luismarques added a comment to D87578: [RISCV][builtins] implementation of i-cache clear routine.

You'll notice that there is already an implementation of __clear_cache for RISC-V in the file you are contributing to, in line 160. That existing implementation directly performs a syscall. Your new implementation calls a (RISC-V-specific) GNU libc function __riscv_flush_icache, which internally either uses a vDSO (if available) or performs the syscall.

Mon, Sep 14, 3:16 AM · Restricted Project

Tue, Sep 8

luismarques updated the diff for D86278: [compiler-rt][builtins] Add tests for atomic builtins support functions.
  • Add missing return from main.
Tue, Sep 8, 7:27 AM · Restricted Project
luismarques added a comment to D86278: [compiler-rt][builtins] Add tests for atomic builtins support functions.

Ping. I think all of the review issues (originally added in D81348) have been addressed so this is probably ready to land.

Tue, Sep 8, 7:18 AM · Restricted Project
luismarques updated the diff for D86457: [compiler-rt][builtins][RISCV] Always include __mul[sd]i3 builtin definitions.

Address review concerns.

Tue, Sep 8, 6:40 AM · Restricted Project
luismarques added inline comments to D86457: [compiler-rt][builtins][RISCV] Always include __mul[sd]i3 builtin definitions.
Tue, Sep 8, 6:39 AM · Restricted Project
luismarques added a comment to D86198: llvm enable sanitizer (RISCV64).

There are still issues with compiling and running the sanitizer tests for the added architecture. I think fixing those should be a precondition for this to be considered mergeable.

Have you added the flag "-DLLVM_DEFAULT_TARGET_TRIPLE="riscv64-unknown-linux-gnu"" and "-fsanitize=address" when compiling the sanitizer test?

Tue, Sep 8, 4:17 AM

Thu, Sep 3

luismarques added a comment to D62732: [RISCV] Add SystemV ABI.

@labath @jrtc27 @clayborg Now that we have at least 3 open-source debug servers that we can use to test this with (OpenOCD, QEMU gdbstub, gdbserver) perhaps this can be merged? I had very good results using this patch with OpenOCD. This patch doesn't include automated tests, but I'm not sure what tests would be required for this patch, or that it makes sense to require them at this point. I'll be doing more work for LLDB RISC-V support, and I'll provide tests for specific fixes going forward.

Thu, Sep 3, 6:01 AM · Restricted Project
luismarques updated the diff for D62732: [RISCV] Add SystemV ABI.
  • Fix list of callee saved registers;
  • Fix typo;
  • Fix trivial clang-format issue.
Thu, Sep 3, 5:49 AM · Restricted Project
luismarques commandeered D62732: [RISCV] Add SystemV ABI.

Commandeering the patch, as discussed in the last RISC-V sync-up call. I'll update it with only minor changes; further development can be done in follow-up patches.

Thu, Sep 3, 5:42 AM · Restricted Project

Wed, Sep 2

luismarques added inline comments to D86522: [RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl().
Wed, Sep 2, 6:44 AM · Restricted Project

Fri, Aug 28

luismarques added a reviewer for D86278: [compiler-rt][builtins] Add tests for atomic builtins support functions: efriedma.
Fri, Aug 28, 8:38 AM · Restricted Project
luismarques added a comment to D86198: llvm enable sanitizer (RISCV64).

I have updated my patch and summary. Are there any new updates with the patch review?

Fri, Aug 28, 7:47 AM
luismarques requested changes to D86195: [RISC-V] Add support for AddressSanitizer on RISC-V GCC.
Fri, Aug 28, 7:23 AM

Thu, Aug 27

luismarques resigned from D86510: [compiler-rt] Fix atomic support functions on 32-bit architectures.

I'll leave this to the experts then! :-)

Thu, Aug 27, 6:31 AM · Restricted Project
luismarques added a reviewer for D86510: [compiler-rt] Fix atomic support functions on 32-bit architectures: jyknight.
Thu, Aug 27, 6:25 AM · Restricted Project

Tue, Aug 25

luismarques added a comment to D86292: [LLDB][RISCV] Distinguish between riscv32 and riscv64 based on ELF class.

Not so silly; gdb (well, the names are inherited from bfd) has set architecture riscv:rv32/set architecture riscv:rv64 :)

Tue, Aug 25, 2:57 PM · Restricted Project
luismarques added a comment to D86522: [RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl().

This is technically correct, but looking at the other targets it seems that the hook is generally being used more restrictively for instructions where you actually have some expectation of it being a copy/move. Do we really want to go down this route? In principle we'd have to later expand this to e.g. all of the bitmanip instructions that can implement copies and so on, which seems a bit like a reductio ad absurdum. Having tests showing at least a little bit of benefit would help make the case for this patch :-)

Tue, Aug 25, 8:13 AM · Restricted Project
luismarques added inline comments to D86281: [compiler-rt][builtins] Tweak checks for lock-free atomics.
Tue, Aug 25, 4:59 AM · Restricted Project
luismarques accepted D86517: [RISC-V] Mark C_MV as a move instruction.

LGTM.

Tue, Aug 25, 4:43 AM · Restricted Project
luismarques accepted D86480: [RISC-V] ADDI/ORI/XORI x, 0 should be as cheap as a move.

Looking at the AArch64 implementation, it seems there is precedent for this hook already including other instructions that are cheap but not necessarily recognized as actual moves by the microarchitecture (i.e. renames). So I guess they may not be, strictly speaking, as cheap as a move, but they are close enough. And that may very well be the point of the hook, otherwise they would just be non-canonical moves?

Tue, Aug 25, 2:28 AM · Restricted Project
luismarques accepted D86510: [compiler-rt] Fix atomic support functions on 32-bit architectures.

LGTM. (I had already gone down roughly the same path in D86281. This patch additionally adds checks for the alignments of the pointers, so it can supersede D86281)

Tue, Aug 25, 1:37 AM · Restricted Project
luismarques abandoned D86281: [compiler-rt][builtins] Tweak checks for lock-free atomics.

Only just saw this after posting my own fix (D86510). This LGTM, and I can rebase my change to enable the 16-byte case on top of this.

Tue, Aug 25, 1:31 AM · Restricted Project

Mon, Aug 24

luismarques added a comment to D86036: [compiler-rt][RISCV] Use muldi3 builtin assembly implementation.

I meant muldi3.S and mulsi3.S, not the .inc file - I don't think either is changed by that patch yet?

Mon, Aug 24, 7:25 AM · Restricted Project
luismarques added a comment to D86036: [compiler-rt][RISCV] Use muldi3 builtin assembly implementation.

@thakis this also matches the #ifdefs in the files themselves.

Mon, Aug 24, 7:13 AM · Restricted Project
luismarques requested review of D86457: [compiler-rt][builtins][RISCV] Always include __mul[sd]i3 builtin definitions.
Mon, Aug 24, 6:28 AM · Restricted Project
luismarques added inline comments to D86036: [compiler-rt][RISCV] Use muldi3 builtin assembly implementation.
Mon, Aug 24, 5:59 AM · Restricted Project

Aug 21 2020

luismarques committed rG57903cf09335: [compiler-rt][RISCV] Use muldi3 builtin assembly implementation (authored by luismarques).
[compiler-rt][RISCV] Use muldi3 builtin assembly implementation
Aug 21 2020, 5:07 AM
luismarques closed D86036: [compiler-rt][RISCV] Use muldi3 builtin assembly implementation.
Aug 21 2020, 5:07 AM · Restricted Project
luismarques updated the diff for D86292: [LLDB][RISCV] Distinguish between riscv32 and riscv64 based on ELF class.

Add riscv32 test.

Aug 21 2020, 3:43 AM · Restricted Project

Aug 20 2020

luismarques requested review of D86292: [LLDB][RISCV] Distinguish between riscv32 and riscv64 based on ELF class.
Aug 20 2020, 7:57 AM · Restricted Project
luismarques abandoned D86043: [compiler-rt][builtins] Tweak checks for lock-free atomics.

This review is superseded by D86281, due to issues with subscribing llvm-commits.

Aug 20 2020, 5:25 AM · Restricted Project
luismarques requested review of D86281: [compiler-rt][builtins] Tweak checks for lock-free atomics.
Aug 20 2020, 5:24 AM · Restricted Project
luismarques abandoned D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.

This is superseded by D86278, due to issues with subscribing llvm-commits.

Aug 20 2020, 3:49 AM · Restricted Project
luismarques requested review of D86278: [compiler-rt][builtins] Add tests for atomic builtins support functions.
Aug 20 2020, 3:46 AM · Restricted Project
luismarques added a comment to D86198: llvm enable sanitizer (RISCV64).

For D84727, I didn't know how to correctly submit an updated patch before. That is why I submitted another patch. For the current stage, you can just abandon D84727.

Aug 20 2020, 3:02 AM
luismarques added inline comments to D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.
Aug 20 2020, 2:56 AM · Restricted Project
luismarques added a comment to D86198: llvm enable sanitizer (RISCV64).

Did you mean D84727? For that patch, no one has given an update feedback so far.

Aug 20 2020, 2:22 AM

Aug 19 2020

luismarques requested changes to D86198: llvm enable sanitizer (RISCV64).
  1. You need to provide the full context in the patch. See [1], particularly the part about the -U999999.
  2. You need to base your patch on a recent LLVM commit, as this patch doesn't apply cleanly.
  3. This patch repeats changes from D86198. Are you abandoning D86198? If so you need to update the status of that review.
  4. I would expect this review to provide a more detailed summary, including the support status of the various sanitizers for RISC-V, and why it's reasonable to enable them.
Aug 19 2020, 2:52 AM

Aug 18 2020

luismarques added a comment to D86043: [compiler-rt][builtins] Tweak checks for lock-free atomics.
In D86043#2222622, @jfb wrote:

Can you add a test that this works, e.g. by having a program which uses these functions, but doesn't link to libatomic?

Aug 18 2020, 2:16 AM · Restricted Project

Aug 17 2020

luismarques committed rG687e7d34253b: [NFC] Tweak a comment about the lock-free builtins (authored by luismarques).
[NFC] Tweak a comment about the lock-free builtins
Aug 17 2020, 5:45 AM
luismarques added a reviewer for D86043: [compiler-rt][builtins] Tweak checks for lock-free atomics: eli.friedman.
Aug 17 2020, 5:41 AM · Restricted Project

Aug 16 2020

luismarques retitled D86043: [compiler-rt][builtins] Tweak checks for lock-free atomics from [compiler-rt][builtins] Tweak tests for lock-free atomics to [compiler-rt][builtins] Tweak checks for lock-free atomics.
Aug 16 2020, 4:08 PM · Restricted Project
luismarques requested review of D86043: [compiler-rt][builtins] Tweak checks for lock-free atomics.
Aug 16 2020, 3:51 PM · Restricted Project
luismarques requested review of D86036: [compiler-rt][RISCV] Use muldi3 builtin assembly implementation.
Aug 16 2020, 6:16 AM · Restricted Project

Aug 4 2020

luismarques added a comment to D62732: [RISCV] Add SystemV ABI.

As for next steps, if we're happy with the state then I think this should land (assuming qemu is sufficient given it is public), and then we can flesh out other bits which give a better experience. I'm not sure how to connect this to any automated testing, or where to document any way of checking this manually, the state of that isn't quite clear, so any clarity there helps.

Aug 4 2020, 3:21 PM · Restricted Project

Jul 30 2020

luismarques added a comment to D84833: Implement indirect branch generation in position independent code for the RISC-V target.

I _believe_ we need:

isBranch = 1, isTerminator = 1, isBarrier = 1

?

Jul 30 2020, 7:40 AM · Restricted Project
luismarques added a comment to D84833: Implement indirect branch generation in position independent code for the RISC-V target.

Other than the TODO, yes (and hopefully you agree with my suggestions here!). I would also like to see branch-relaxation.ll grow RV64 RUN lines for completeness, even if it's probably a bit redundant (and creates a slight explosion..), but I can do that as a follow-up patch.

Jul 30 2020, 7:24 AM · Restricted Project

Jul 29 2020

luismarques added a comment to D62732: [RISCV] Add SystemV ABI.

Yeah, I don't think we want to be merging code we can't test even in a non-automated way. Even if this code is completely bug-free, the inability to test it just means we risk having it bit-rot with nobody noticing.

Jul 29 2020, 2:01 PM · Restricted Project

Jul 6 2020

luismarques accepted D77443: [RISCV] Fix RISCVInstrInfo::getInstSizeInBytes for atomics pseudos.

Alright, let's get this landed! Please just add comments in the expansion functions, noting the need to update these values if the expansion templates ever change, as Lewis says.

Jul 6 2020, 3:07 PM · Restricted Project
luismarques accepted D82988: [RISCV] Avoid Splitting MBB in RISCVExpandPseudo.

LGTM. Nice!

Jul 6 2020, 2:26 PM · Restricted Project
luismarques accepted D81805: [RISCV] Fix isStoreToStackSlot.

LGTM. Good catch Roger!
(I have verified that the code change makes sense based both on tablegen definitions and the sanity test that Roger indicated on the comment).

Jul 6 2020, 1:14 PM · Restricted Project
luismarques accepted D82660: [RISCV] Optimize multiplication by constant.

LGTM.
I'm not overly concerned about the occasional code size increases from doing the optimization for RV32IM, so the loosening of the condition is OK IMO.
Everything else seems to be in order now.
Maybe wait a couple of days more for @lenary's OK.

Jul 6 2020, 10:10 AM · Restricted Project
luismarques accepted D83059: [RISCV] Use Generated Instruction Uncompresser.

LGTM.

Jul 6 2020, 9:44 AM · Restricted Project
luismarques committed rG61c2a0bb8236: [RISCV] Fold ADDIs into load/stores with nonzero offsets (authored by luismarques).
[RISCV] Fold ADDIs into load/stores with nonzero offsets
Jul 6 2020, 9:35 AM
luismarques closed D79690: [RISCV] Fold ADDIs into load/stores with nonzero offsets.
Jul 6 2020, 9:35 AM · Restricted Project
luismarques updated the summary of D83229: [RISCV][WIP] Improve RV32 constant materialization.
Jul 6 2020, 7:31 AM · Restricted Project
luismarques updated the summary of D83229: [RISCV][WIP] Improve RV32 constant materialization.
Jul 6 2020, 7:29 AM · Restricted Project
Herald added a project to D83229: [RISCV][WIP] Improve RV32 constant materialization: Restricted Project.
Jul 6 2020, 7:27 AM · Restricted Project
Herald added a project to D83210: [RISCV][NFC] Add more tests for 32-bit constant materialization: Restricted Project.
Jul 6 2020, 4:15 AM · Restricted Project

Jul 4 2020

luismarques added a comment to D83153: [DAGCombiner] Prevent regression in isMulAddWithConstProfitable.

For these kinds of patches where you add new tests which show a difference in code quality it's helpful if you can split the tests into a separate patch. You can then add that other patch as a dependency for this one, creating a Stack in Phabricator. That way it's easier to see the differences in the generated code.

Jul 4 2020, 7:31 AM · Restricted Project

Jul 2 2020

luismarques accepted D82262: [RISCV] optimize addition with a pair of (addi imm).

The patch seems correct to me. I'm not quite sure this is the best place to do the this transformation (guidance on that from other people would be welcome), but I don't have a better solution to propose right now. I'm going to approve this patch, but I suggest you wait a couple more days to give other people an opportunity to comment on that issue.
Regarding the tests, as a nitpicking issue, I would only suggest giving the test functions slightly more semantic names (maybe something like negative_bound_reject, etc.).

Jul 2 2020, 8:05 AM · Restricted Project

Jul 1 2020

luismarques added a comment to D82988: [RISCV] Avoid Splitting MBB in RISCVExpandPseudo.

This is looking quite good. As Sam says, not splitting BBs is preferable, so while the D79635 issues could be resolved in other ways, if we can make it work like this then that's even better.
I suppose that this patch could also remove everything related to LabelMustBeEmitted.
If anyone wants to provide about the status of setPreInstrSymbol that would be helpful. Currently it's marked as FIXME: This is not fully implemented yet., although Sam indicates that it's being used by x86, so that may be just a holdover.

Jul 1 2020, 12:26 PM · Restricted Project
luismarques added a comment to D79635: [RISCV] Split the pseudo instruction splitting pass.

The broader point is also correct though: lots of passes which check if a MBB has its address taken, don't also check if the label must be emitted, which this code "assumes". Updating these passes isn't always going to be easy.

Jul 1 2020, 10:48 AM · Restricted Project
luismarques added a comment to D79635: [RISCV] Split the pseudo instruction splitting pass.

I'm not sure why this pass does not take into account such operands (or one of the analyses it uses to do the transformation), but expanding those things later seems to hide/prevent the issue. Perhaps the new basic block created in RISCVExpandPseudo::expandAuipcInstPair needs to be marked as setHasAddressTaken or something (but I have a vague recollection that this had some other consequences, I might be wrong here).

Jul 1 2020, 9:10 AM · Restricted Project
luismarques committed rGb2aa546b0747: [RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2 (authored by luismarques).
[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2
Jul 1 2020, 8:38 AM
luismarques committed rGa61fa1a4b9d2: Revert "[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2" (authored by luismarques).
Revert "[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2"
Jul 1 2020, 8:09 AM
luismarques added a reverting change for rG05a20a9e9aba: [RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2: rGa61fa1a4b9d2: Revert "[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2".
Jul 1 2020, 8:09 AM
luismarques committed rG05a20a9e9aba: [RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2 (authored by luismarques).
[RISCV] Temporarily move riscv-expand-pseudo pass to PreEmitPass2
Jul 1 2020, 8:08 AM
luismarques added a comment to D79635: [RISCV] Split the pseudo instruction splitting pass.

This patch breaks compiling the Linux kernel:

Jul 1 2020, 8:05 AM · Restricted Project
luismarques accepted D79268: [RISCV] Implement Hooks to avoid chaining SELECT.

LGTM.

Jul 1 2020, 2:07 AM · Restricted Project

Jun 29 2020

luismarques added inline comments to D78663: [builtins] Add 32-bit shift builtins.
Jun 29 2020, 7:31 AM · Restricted Project
luismarques committed rG2cb0644f90b7: [RISCV] Split the pseudo instruction splitting pass (authored by luismarques).
[RISCV] Split the pseudo instruction splitting pass
Jun 29 2020, 7:00 AM
luismarques closed D79635: [RISCV] Split the pseudo instruction splitting pass.
Jun 29 2020, 7:00 AM · Restricted Project

Jun 24 2020

luismarques updated the diff for D79690: [RISCV] Fold ADDIs into load/stores with nonzero offsets.

Use getPointerAlignment instead.

Jun 24 2020, 1:01 PM · Restricted Project
luismarques added inline comments to D79690: [RISCV] Fold ADDIs into load/stores with nonzero offsets.
Jun 24 2020, 10:15 AM · Restricted Project
luismarques updated the diff for D79690: [RISCV] Fold ADDIs into load/stores with nonzero offsets.

Handle removal of GlobalValue::getAlignment.

Jun 24 2020, 10:15 AM · Restricted Project

Jun 23 2020

luismarques committed rG0947a8ca9824: [RISCV][NFC] Add tests for folds of ADDIs into load/stores (authored by luismarques).
[RISCV][NFC] Add tests for folds of ADDIs into load/stores
Jun 23 2020, 3:07 PM
luismarques closed D79689: [RISCV][NFC] Add tests for folds of ADDIs into load/stores.
Jun 23 2020, 3:06 PM · Restricted Project
luismarques added inline comments to D82262: [RISCV] optimize addition with a pair of (addi imm).
Jun 23 2020, 1:26 PM · Restricted Project

Jun 17 2020

luismarques updated the diff for D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.

Some final tweaks to the unaligned tests. I changed my mind about this when I was about to mark some review comments as done. Sorry about the churn!

Jun 17 2020, 8:36 AM · Restricted Project
luismarques added inline comments to D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.
Jun 17 2020, 8:36 AM · Restricted Project
luismarques updated the diff for D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.

Add more consts and alignments.

Jun 17 2020, 3:44 AM · Restricted Project

Jun 15 2020

luismarques updated the diff for D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.

Minor fixes.

Jun 15 2020, 2:41 AM · Restricted Project

Jun 14 2020

luismarques updated the diff for D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.

Address review concerns. Various minor fixes and improvements.

Jun 14 2020, 5:04 PM · Restricted Project

Jun 9 2020

luismarques added inline comments to D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.
Jun 9 2020, 10:25 AM · Restricted Project
luismarques added a comment to D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.
In D81348#2082596, @jfb wrote:

You should probably also test overflow behavior for the RMW variants. Specifically, this clause:

Remarks: For signed integer types, the result is as if the object value and parameters were converted to their corresponding unsigned types, the computation performed on those types, and the result converted back to the signed type. [ Note: There are no undefined results arising from the computation. — end note ]

Jun 9 2020, 10:25 AM · Restricted Project
luismarques added a comment to D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.
In D81348#2081781, @asb wrote:

Could you please confirm if the pre-commit test failures are real or spurious build infra related issues?

Jun 9 2020, 5:27 AM · Restricted Project
luismarques updated the diff for D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.

Correctly gate all instances of 128-bit variables and tests.

Jun 9 2020, 3:15 AM · Restricted Project
luismarques updated the diff for D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.

Add comment about not resetting the test variables between the tests of different operations in the section that tests __atomic_fetch_<op>_* stuff.

Jun 9 2020, 3:15 AM · Restricted Project