sdardis (Simon Dardis)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 19 2015, 4:53 AM (140 w, 1 d)

Recent Activity

Yesterday

sdardis updated subscribers of D43585: [libunwind] Permit additional compiler flags to be passed to tests..

This works as expected with your corresponding libcxx patch. However @arichardson 's D42139 does similar things for libcxx. We should wait for that to land, and ensure that this patch is rebased against that.

Fri, Feb 23, 6:21 AM
sdardis committed rL325876: [mips] 6.0 Release notes.
[mips] 6.0 Release notes
Fri, Feb 23, 2:21 AM
sdardis closed D43573: [mips] 6.0 Release notes.
Fri, Feb 23, 2:21 AM

Thu, Feb 22

sdardis accepted D38128: Handle COPYs of physregs better (regalloc hints).

Hi Jonas, I've regenerated the tests in rL325770 and the changes seem ok. The main difference I'm seeing is some moves are being eliminated, but in a few cases in test/CodeGen/Mips/analyzebranch.ll the earlier move prevents a delay slot being filled but otherwise looks ok.

Thu, Feb 22, 4:57 AM
sdardis committed rL325770: [mips] Regenerate tests for D38128 (NFC).
[mips] Regenerate tests for D38128 (NFC)
Thu, Feb 22, 3:56 AM

Wed, Feb 21

sdardis added inline comments to D43488: [mips][lld] Spectre variant two mitigation for MIPSR2.
Wed, Feb 21, 12:05 PM
sdardis committed rL325713: [mips][lld] Address post commit review nit..
[mips][lld] Address post commit review nit.
Wed, Feb 21, 12:04 PM
sdardis committed rLLD325713: [mips][lld] Address post commit review nit..
[mips][lld] Address post commit review nit.
Wed, Feb 21, 12:04 PM
sdardis accepted D43583: [MIPS GlobalISel] Adding GlobalISel.
Wed, Feb 21, 11:40 AM
sdardis added a comment to D43583: [MIPS GlobalISel] Adding GlobalISel.

LGTM, some nits inlined.

Wed, Feb 21, 11:40 AM
sdardis added a comment to D43486: [mips] Spectre variant two mitigation for MIPSR2.

Thanks for the review.

Wed, Feb 21, 6:39 AM
sdardis added a comment to D43573: [mips] 6.0 Release notes.

Have I missed anything important?

Wed, Feb 21, 6:26 AM
sdardis created D43573: [mips] 6.0 Release notes.
Wed, Feb 21, 6:25 AM

Tue, Feb 20

sdardis committed rL325653: [mips] Spectre variant two mitigation for MIPSR2.
[mips] Spectre variant two mitigation for MIPSR2
Tue, Feb 20, 4:09 PM
sdardis closed D43486: [mips] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 4:09 PM
sdardis committed rC325651: [mips] Spectre variant two mitigation for MIPSR2.
[mips] Spectre variant two mitigation for MIPSR2
Tue, Feb 20, 4:07 PM
sdardis committed rL325651: [mips] Spectre variant two mitigation for MIPSR2.
[mips] Spectre variant two mitigation for MIPSR2
Tue, Feb 20, 4:07 PM
sdardis closed D43487: [mips] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 4:07 PM
sdardis updated the summary of D43486: [mips] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 4:02 PM
sdardis updated the summary of D43487: [mips] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 4:02 PM
sdardis committed rLLD325647: [mips][lld] Spectre variant two mitigation for MIPSR2.
[mips][lld] Spectre variant two mitigation for MIPSR2
Tue, Feb 20, 3:54 PM
sdardis committed rL325647: [mips][lld] Spectre variant two mitigation for MIPSR2.
[mips][lld] Spectre variant two mitigation for MIPSR2
Tue, Feb 20, 3:53 PM
sdardis closed D43488: [mips][lld] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 3:53 PM
sdardis closed D43488: [mips][lld] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 3:53 PM
sdardis committed rL325589: [mips] Correct the definition of cvt.d.w.
[mips] Correct the definition of cvt.d.w
Tue, Feb 20, 7:58 AM
sdardis updated the diff for D43486: [mips] Spectre variant two mitigation for MIPSR2.

Fixed jump encodings used in the long branch pass.
Added -verify-machineinstrs to the relevant ll tests.

Tue, Feb 20, 6:50 AM
sdardis created D43509: [libcxx][cmake] Remove libatomic temporarily from CMAKE_REQUIRED_LIBRARIES when configuring.
Tue, Feb 20, 6:29 AM
sdardis added inline comments to D43486: [mips] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 5:35 AM
sdardis updated the summary of D43487: [mips] Spectre variant two mitigation for MIPSR2.
Tue, Feb 20, 4:55 AM

Mon, Feb 19

sdardis updated the summary of D43486: [mips] Spectre variant two mitigation for MIPSR2.
Mon, Feb 19, 2:56 PM
sdardis updated the summary of D43487: [mips] Spectre variant two mitigation for MIPSR2.
Mon, Feb 19, 2:55 PM
sdardis created D43488: [mips][lld] Spectre variant two mitigation for MIPSR2.
Mon, Feb 19, 2:52 PM
sdardis created D43487: [mips] Spectre variant two mitigation for MIPSR2.
Mon, Feb 19, 2:52 PM
sdardis created D43486: [mips] Spectre variant two mitigation for MIPSR2.
Mon, Feb 19, 2:52 PM

Sat, Feb 17

sdardis added a comment to D43433: [MIPS][MSA] Convert vector integer min/max opcodes to generic implementation.

PS: We should also get some more Simones as well :)

Sat, Feb 17, 12:38 PM
sdardis accepted D43433: [MIPS][MSA] Convert vector integer min/max opcodes to generic implementation.

LGTM. Thanks for the clean-up.

Sat, Feb 17, 12:34 PM

Fri, Feb 16

sdardis accepted D37515: [mips] Generate memory dependencies for byVal arguments.

LGTM. Add a comment to test file, describing the purpose of the test.

Fri, Feb 16, 7:23 AM
sdardis committed rL325341: [mips] Remove codegen support from some 16 bit instructions.
[mips] Remove codegen support from some 16 bit instructions
Fri, Feb 16, 5:36 AM
sdardis closed D41285: [mips] Remove codegen support from some 16 bit instructions.
Fri, Feb 16, 5:36 AM

Thu, Feb 15

sdardis committed rT325231: [test-suite] Fix ambigous call to overloaded function isnan.
[test-suite] Fix ambigous call to overloaded function isnan
Thu, Feb 15, 3:44 AM
sdardis committed rL325231: [test-suite] Fix ambigous call to overloaded function isnan.
[test-suite] Fix ambigous call to overloaded function isnan
Thu, Feb 15, 3:42 AM
sdardis closed D42411: [test-suite] Fix ambigous call to overloaded function isnan.
Thu, Feb 15, 3:42 AM

Tue, Feb 13

sdardis added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

Yes. Something like LIBUNWIND_TEST_CFLAGS mapping to config.test_cflags, which libunwind/test/libunwind/test/config.py then appends when building the tests.

Tue, Feb 13, 2:23 AM

Mon, Feb 12

sdardis added a comment to D42896: [SelectionDAG] Add initial implementation of TargetLowering::SimplifyDemandedVectorElts.

I'll address the size regression after this lands. It's an odd enough case that I don't feel its worth holding this patch up.

Mon, Feb 12, 10:58 AM
sdardis added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

The only thing this needs now is to get correct testing support. Could you add support for passing down to the configuration script an additional set of cflags like compiler-rt and libomp do (as a separate patch)? If you look at libomp, you'll see LIBOMP_TEST_CFLAGS defined in the cmake build system and threaded through various places so the built tests can have the correct options. Without supporting that we get a mixed set of objects, which isn't correct.

Mon, Feb 12, 9:21 AM
sdardis added inline comments to D39115: [MIPS][MicroMIPS] Extending size reduction pass with LWP and SWP.
Mon, Feb 12, 3:07 AM

Fri, Feb 9

sdardis committed rL324729: [mips] UnXFAIL gprestore.ll test..
[mips] UnXFAIL gprestore.ll test.
Fri, Feb 9, 2:48 AM
sdardis accepted D35561: [SelectionDAG] Provide adequate register class for RegisterSDNode.

LGTM.

Fri, Feb 9, 1:49 AM

Thu, Feb 8

sdardis added a reviewer for D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs.: compnerd.

I am not sure what the answer is. There's a slightly different issue in that returning the contents of a floating point register on MIPS and expecting it to be a double is not necessarily correct. For a 64bit FPU, the result of lwc1/mtc1 leaves the upper 32bits of an floating point register as UNPREDICTABLE by the architecture definition. It's entirely possible for the application being unwound to be operating on single precision values, but the contents of the register in it's entirety are a signalling nan.

Thu, Feb 8, 6:41 AM
sdardis added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

Ok, I've found my issue. inttypes.h in libcxx include_next's <inttypes.h>, which on my debian linux systems has the include chain <features.h>, <stubs.h>, <sgidefs.h>. <sgidefs.h> "helpfully" provides #defines of the various _ABIXXX macros, which normally the compiler defines depending on the ABI. The include chain for other parts of libunwind differ which means src/UnwindLevel1-gcc-ext.c had a different definition of the stuct unw_context_t, which was the version defined for O32. As GCC and clang laid out the stack differently for each ABI differently the bug was masked. However for N32 at O3, the layout was such that the unwind context in the locals area was right below the saved registers for _Unwind_Backtrace which trashed older saved values, then triggered a SIGSEGV on return due to reloading the saved contents of the $lo into $ra in my case.

Thu, Feb 8, 3:53 AM

Wed, Feb 7

sdardis added a comment to D42411: [test-suite] Fix ambigous call to overloaded function isnan.

@MatzeB ping?

Wed, Feb 7, 9:04 AM
sdardis added a comment to D43019: [ELF][MIPS] Add test exclusion for _gp_disp symbol.

rLLD324468 Covers this?

Wed, Feb 7, 7:00 AM
sdardis accepted D42738: [mips] Define certain instructions in microMIPS32r3.

LGTM with two inline nits addressed.

Wed, Feb 7, 4:01 AM

Tue, Feb 6

sdardis added a comment to D42948: [SelectionDAG] Support some SimplifySetCC cases for comparing against vector splats of constants..

Please check in the AArch64 (and MIPS?) test changes ahead of this.

Tue, Feb 6, 9:34 AM
sdardis added a comment to D35561: [SelectionDAG] Provide adequate register class for RegisterSDNode.

Attached.

Tue, Feb 6, 6:38 AM
sdardis added inline comments to D42896: [SelectionDAG] Add initial implementation of TargetLowering::SimplifyDemandedVectorElts.
Tue, Feb 6, 5:40 AM

Fri, Feb 2

sdardis updated subscribers of D35561: [SelectionDAG] Provide adequate register class for RegisterSDNode.

It appears this also fixes a machine verifier failure in test/CodeGen/AMDGPU/r600.work-item-intrinsics.ll, but I am unsure on the correctness of the changed assembly output. +CC'ing Jan Vesely who provided the test.

Fri, Feb 2, 4:38 AM

Tue, Jan 30

sdardis committed rL323781: [mips] Fix incorrect sign extension for fpowi libcall.
[mips] Fix incorrect sign extension for fpowi libcall
Tue, Jan 30, 8:26 AM
sdardis closed D42537: [mips] Fix incorrect sign extension for fpowi libcall.
Tue, Jan 30, 8:26 AM
sdardis added a comment to D35561: [SelectionDAG] Provide adequate register class for RegisterSDNode.

Please update the title with [SelectionDAG] tag and description to reflect that this is now a selection dag patch. Also, can you restore the code to where it previously was, I was incorrect about that, as it'd just make the code harder to follow in terms of handling virtual and physical registers in the same function.

Tue, Jan 30, 7:55 AM
sdardis requested changes to D41982: [mips] Reordering callseq* nodes to be linear.

This patch isn't correct, as you're not passing the pointer to the callee or filling the rest of the argument registers with the object being passed. This results in the callee and caller differing in their interpretation of the arguments. The following test case shows this behaviour:

Tue, Jan 30, 2:22 AM
sdardis requested changes to D42534: [mips] Compute MaxCallFrame size early on.

Marking this as changes required to clear up any confusion.

Tue, Jan 30, 2:05 AM
sdardis added a comment to D42534: [mips] Compute MaxCallFrame size early on.

+CC'ing @MatzeB for additional insight on what needs to be changed.

Found the bug. What's occurring with the debug information test failures with this patch, is that during the insertion of debug instructions for function arguments, it has to determine which register to assign to the debug instruction, see SelectionDAGISel.cpp:505. Here it asks for the frame pointer register which for some RISC like targets by the size of the frame for the function.

It seems to me that we need to compute the max call frame size before that point (SelectionDAGISel.cpp:505) for targets which use call frame setup and destroy pseudo instructions, this however requires changes for every target which implements finalizeLowering() to compute the maxCallFrameSize.

Yeah code calling hasFP() early in the process is a real annoyance. You can find me wiggling in the review of https://reviews.llvm.org/D32622 too. At the time it seemed to me like it only influences scheduling heuristic so I went with this hack in the ARM target:

// hasFP ends up calling getMaxCallFrameComputed() which may not be
// available when getPressureLimit() is called as part of
// ScheduleDAGRRList.
bool HasFP = MF.getFrameInfo().isMaxCallFrameSizeComputed()
             ? TFI->hasFP(MF) : true;

instead.

But it looks like you found a bigger problem than the heuristic. If you can find ways for ISel to not do this anymore I would certainly apreciate it!

Tue, Jan 30, 2:05 AM

Mon, Jan 29

sdardis accepted D41771: [mips] Include EVA instructions in the Std2MicroMips mapping tables.

During review, I spotted that the left/right eva stores and loads are not in the instruction mapping tables and that they have incorrect DAG patterns associated with them but that can be submitted as a separate patch.

Mon, Jan 29, 6:39 AM
sdardis updated subscribers of D42534: [mips] Compute MaxCallFrame size early on.

+CC'ing @MatzeB for additional insight on what needs to be changed.

Mon, Jan 29, 3:15 AM

Fri, Jan 26

sdardis added a comment to D42411: [test-suite] Fix ambigous call to overloaded function isnan.

I'm fine with leaving the code in the test-suite as is (no need for this followup patch).

Fri, Jan 26, 12:19 PM
sdardis added a comment to D42534: [mips] Compute MaxCallFrame size early on.

Ok, hold off on committing this for now, I want to check this, as I'd missed the debuginfo tests when reviewing this. Good catch though.

Fri, Jan 26, 7:58 AM
sdardis added a comment to D42411: [test-suite] Fix ambigous call to overloaded function isnan.

Anyway let's leave it as is, if it breaks the build on your side.

Fri, Jan 26, 7:48 AM
sdardis accepted D42571: [MIPS] Don't crash on unsized extern types with -mgpopt.

LGTM.

Fri, Jan 26, 6:35 AM
sdardis accepted D42534: [mips] Compute MaxCallFrame size early on.

LGTM.

Fri, Jan 26, 5:32 AM
sdardis added a comment to D42571: [MIPS] Don't crash on unsized extern types with -mgpopt.

I've seen this patch in the CHERI fork, thanks for upstreaming it. Some nits inlined and can you use update_llc_test_checks.py to generate the CHECK lines?

Fri, Jan 26, 3:51 AM

Jan 25 2018

sdardis updated the diff for D42411: [test-suite] Fix ambigous call to overloaded function isnan.

Update as per @MatzeB 's comment, checking before commit showed it broke the build on OSX.

Jan 25 2018, 8:10 AM
sdardis created D42537: [mips] Fix incorrect sign extension for fpowi libcall.
Jan 25 2018, 7:11 AM
sdardis added a comment to D41771: [mips] Include EVA instructions in the Std2MicroMips mapping tables.

Yes, adding them manually is fine. We haven't implemented support for _builtin_prefetch or _builtin_mips_cache, so that's the only way to test them.

Jan 25 2018, 2:43 AM
sdardis committed rC323412: [Driver] Add support for mips32 and scudo.
[Driver] Add support for mips32 and scudo
Jan 25 2018, 2:13 AM
sdardis committed rL323412: [Driver] Add support for mips32 and scudo.
[Driver] Add support for mips32 and scudo
Jan 25 2018, 2:13 AM
sdardis closed D42416: [Driver] Add support for mips32 and scudo.
Jan 25 2018, 2:13 AM

Jan 24 2018

sdardis added a comment to D42416: [Driver] Add support for mips32 and scudo.

Thanks, will fix the nit on commit.

Jan 24 2018, 2:30 AM

Jan 23 2018

sdardis created D42416: [Driver] Add support for mips32 and scudo.
Jan 23 2018, 5:09 AM
sdardis created D42411: [test-suite] Fix ambigous call to overloaded function isnan.
Jan 23 2018, 3:16 AM

Jan 22 2018

sdardis accepted D41439: [mips] Properly select abs and sqrt instructions.

LGTM.

Jan 22 2018, 6:37 AM

Jan 19 2018

sdardis accepted D41777: [TSan][MIPS] Expand mips sanitizer memory space to include shadow mappings of low addresses.

LGTM.

Jan 19 2018, 7:02 AM · Restricted Project
sdardis added a comment to D41439: [mips] Properly select abs and sqrt instructions.

This looks

Jan 19 2018, 6:13 AM

Jan 12 2018

sdardis added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

I just checked both my qemu copy and on my mips64 machine and it seems to be a a copy / paste error. Reposting here directly from my machines:

Jan 12 2018, 12:59 PM
sdardis added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

Um, I now appear to be getting different results for running under QEMU doing it the proper way. I was previously rebuilding the failing test by hand and running under qemu. I don't believe I changed anything important, I'll have to take a longer look.

Jan 12 2018, 11:46 AM
sdardis added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

This was libunwind's test suite:

Jan 12 2018, 10:44 AM
sdardis added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

Sorry for the delay in getting back to this, but testing this by building it explicitly for N32 (I built a full N32 compiler + libunwind and modified the test setup py to compile for N322) and I'm getting crashes on the return path in _Unwind_Backtrace.

Jan 12 2018, 8:54 AM

Jan 10 2018

sdardis accepted D41857: [Mips] Handle one byte unsupported relocations.

Two additional nits to the ones inlined, rather that use the term 'illegal' say 'unsupported', this goes for the title as well as the test file name.

Jan 10 2018, 2:31 PM

Jan 9 2018

sdardis added a comment to D41821: [MIPS] Disassemble the 0xefefefef trap padding used by LLD.

Right now I do not know why llvm-objdump does not show a correct instruction instead of "<unknown>". By the way GNU objdump shows "swc3 $15,-4113(ra)" for "efefefef".

Jan 9 2018, 5:41 AM
sdardis added a comment to D41439: [mips] Properly select abs and sqrt instructions.

This looks

Jan 9 2018, 1:50 AM

Jan 8 2018

sdardis added a comment to D41771: [mips] Include EVA instructions in the Std2MicroMips mapping tables.

Can you provide a test case for this? You can generate a .mir file with the stop-after option of llc, then modify by hand the stores and loads to use the MIPS eva instructions. The test case should then use start-after= with -mattr=+micromips, produce an object file, then disassemble the object for and check that the resulting object file contains only micromips instructions.

Jan 8 2018, 4:22 AM
sdardis accepted D41769: [mips] Remove duplicated R6 EVA instructions.

/Users/simon/dev/llvm/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp:1541:21: warning: unused function 'DecodeLoadByte9' [-Wunused-function]

static DecodeStatus DecodeLoadByte9(MCInst &Inst,
                    ^
/Users/simon/dev/llvm/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp:1645:21: warning: unused function 'DecodeStoreEvaOpMM' [-Wunused-function]
static DecodeStatus DecodeStoreEvaOpMM(MCInst &Inst,
Jan 8 2018, 3:42 AM

Jan 6 2018

sdardis accepted D41778: Improve diagnostics for instruction mapping.

Some small nits inlined, otherwise LGTM. Please wait a few working days to let others chime in if they have suggestions before committing.

Jan 6 2018, 9:20 AM

Jan 2 2018

sdardis added a comment to D41665: [Docs] Add Contributing page..

Thanks for doing this, @fhahn.

Jan 2 2018, 2:24 PM
sdardis updated the diff for D41662: [mips] Correct the definition of m(f|t)c(0|2).

I missed updating some tests.

Jan 2 2018, 3:42 AM
sdardis added a dependent revision for D41434: [mips] Begin reworking instruction predicates for ISAs/encodings (1/N): D41662: [mips] Correct the definition of m(f|t)c(0|2).
Jan 2 2018, 3:06 AM
sdardis added a dependency for D41662: [mips] Correct the definition of m(f|t)c(0|2): D41434: [mips] Begin reworking instruction predicates for ISAs/encodings (1/N).
Jan 2 2018, 3:06 AM
sdardis created D41662: [mips] Correct the definition of m(f|t)c(0|2).
Jan 2 2018, 2:28 AM

Dec 22 2017

sdardis committed rL321383: Reland "[mips][compiler-rt] Provide 64bit atomic add and sub".
Reland "[mips][compiler-rt] Provide 64bit atomic add and sub"
Dec 22 2017, 12:32 PM
sdardis committed rCRT321383: Reland "[mips][compiler-rt] Provide 64bit atomic add and sub".
Reland "[mips][compiler-rt] Provide 64bit atomic add and sub"
Dec 22 2017, 12:32 PM