Page MenuHomePhabricator

dcederman (Daniel Cederman)
Software Engineer at Cobham Gaisler

Projects

User does not belong to any projects.

User Details

User Since
May 20 2016, 1:12 AM (357 w, 13 h)

Recent Activity

Jun 28 2022

dcederman abandoned D24250: [SPARC] Encode and decode format 3 instructions for use in REX mode.
Jun 28 2022, 12:43 AM · Restricted Project
dcederman abandoned D24248: [SPARC] Add disassembler for the REX instruction set extension.
Jun 28 2022, 12:43 AM · Restricted Project
dcederman abandoned D24247: [SPARC] Add assembler for the REX instruction set extension.
Jun 28 2022, 12:43 AM · Restricted Project

Jun 27 2022

dcederman committed rG1466d65d9bbf: [SPARC] Don't do leaf optimization on procedures with inline assembly (authored by koakuma).
[SPARC] Don't do leaf optimization on procedures with inline assembly
Jun 27 2022, 6:10 AM · Restricted Project, Restricted Project
dcederman closed D128263: [SPARC] Don't do leaf optimization on procedures with inline assembly.
Jun 27 2022, 6:10 AM · Restricted Project, Restricted Project
dcederman accepted D128263: [SPARC] Don't do leaf optimization on procedures with inline assembly.
Jun 27 2022, 5:46 AM · Restricted Project, Restricted Project

Mar 8 2022

dcederman committed rG1c235c375492: [Sparc] Add tail call support (authored by dcederman).
[Sparc] Add tail call support
Mar 8 2022, 4:52 AM · Restricted Project
dcederman closed D51206: [Sparc] Add tail call support.
Mar 8 2022, 4:52 AM · Restricted Project, Restricted Project

Oct 20 2021

dcederman committed rGec428f7b7806: [SPARC] Recognize the prefetch instruction (authored by joerg).
[SPARC] Recognize the prefetch instruction
Oct 20 2021, 2:00 AM
dcederman closed D96311: [SPARC] Recognize the prefetch instruction.
Oct 20 2021, 1:59 AM · Restricted Project

Oct 19 2021

dcederman added a comment to D102342: [SPARC] Fix register reuse in leaf function remapping step.

Hello!

It seems that this patch contains a rewrite of the remapRegsForLeafProc() function in addition to the new check described in the summary. Could you split it up into two patches, one with the rewrite and one with the added check?

I'm not sure about this. The way I see it is that the checks need to be done together with the rewrite, so it probably cannot be split like that (?)

Oct 19 2021, 4:48 AM · Restricted Project, Restricted Project

Oct 13 2021

dcederman updated the diff for D51206: [Sparc] Add tail call support.

Autogenerated assertions with update_llc_test_checks.py.

Oct 13 2021, 7:43 AM · Restricted Project, Restricted Project
dcederman accepted D102575: [SPARC][MC] Support more relocation types.

This looks good to me. Maybe change TailRelocSym to TailOpRelocSym or TailOperandRelocSym to make it more clear that it refers to the tail operand?

Oct 13 2021, 6:37 AM · Restricted Project, Restricted Project
dcederman added a comment to D102342: [SPARC] Fix register reuse in leaf function remapping step.

It seems that this patch contains a rewrite of the remapRegsForLeafProc() function in addition to the new check described in the summary. Could you split it up into two patches, one with the rewrite and one with the added check?

Oct 13 2021, 4:01 AM · Restricted Project, Restricted Project
dcederman accepted D108901: [Sparc] Create an error when `__builtin_longjmp` is used.

LGTM.

Oct 13 2021, 1:34 AM · Restricted Project

Feb 10 2021

dcederman committed rGad3b023c8898: [Sparc] Support relocatable expressions in the assembler (authored by dcederman).
[Sparc] Support relocatable expressions in the assembler
Feb 10 2021, 5:54 AM
dcederman closed D47458: [Sparc] Support relocatable expressions in the assembler.
Feb 10 2021, 5:54 AM · Restricted Project
dcederman updated the diff for D47458: [Sparc] Support relocatable expressions in the assembler.

Moved DOTEXPR tests to end of file
Changed objdump offsets from dec to hex

Feb 10 2021, 5:47 AM · Restricted Project

Jan 4 2021

dcederman committed rG42652c1d6e21: [Sparc] Fixes for the internal assembler (authored by LemonBoy).
[Sparc] Fixes for the internal assembler
Jan 4 2021, 4:26 AM
dcederman closed D78193: [Sparc] Fixes for the internal assembler.
Jan 4 2021, 4:26 AM · Restricted Project

Dec 23 2020

dcederman added a comment to D78193: [Sparc] Fixes for the internal assembler.

I do not currently have commit access, but I have asked to so see if I can get it again and then I will push this patch.

Dec 23 2020, 1:34 AM · Restricted Project

Oct 27 2020

dcederman updated the diff for D51206: [Sparc] Add tail call support.

Rebased on master. Changed unsigned into Register in a couple of places and changed "no-frame-pointer-elim" to "frame-pointer" in test.

Oct 27 2020, 11:52 PM · Restricted Project, Restricted Project

Oct 26 2020

dcederman accepted D78193: [Sparc] Fixes for the internal assembler.

It was some time since I worked with LLVM, but this looks good to me. It tries to fix a couple of things, so it would probably been better to divide it up into more than one patch and add some more tests, but this is fine. I compared the result with GAS for V8 and it matches.

Oct 26 2020, 5:08 AM · Restricted Project

Oct 22 2020

dcederman added a comment to D78193: [Sparc] Fixes for the internal assembler.

I will try and review it next week.

Oct 22 2020, 11:31 PM · Restricted Project

Jan 14 2019

dcederman committed rUNW351044: [Sparc] Add Sparc V8 support.
[Sparc] Add Sparc V8 support
Jan 14 2019, 2:24 AM
dcederman committed rL351044: [Sparc] Add Sparc V8 support.
[Sparc] Add Sparc V8 support
Jan 14 2019, 2:19 AM
dcederman closed D55763: [Sparc] Add Sparc V8 support.
Jan 14 2019, 2:19 AM
dcederman updated the diff for D55763: [Sparc] Add Sparc V8 support.

Fixed warnings related to sign and unused parameters.

Jan 14 2019, 2:08 AM

Jan 11 2019

dcederman added a comment to D55763: [Sparc] Add Sparc V8 support.

It seems that warnings are disabled by default for libunwind? Or I did something wrong when running cmake. Enabling warnings got me list of things I will have to fix before committing.

Jan 11 2019, 8:41 AM
dcederman updated the diff for D55763: [Sparc] Add Sparc V8 support.

Added message to static_assert and moved the AArch64 check one step up.

Jan 11 2019, 8:15 AM
dcederman reopened D55763: [Sparc] Add Sparc V8 support.
Jan 11 2019, 6:57 AM
dcederman updated the diff for D55763: [Sparc] Add Sparc V8 support.

Added assert to verify that DW_CFA_AARCH64_negate_ra_state and DW_CFA_GNU_window_save have the same value.

Jan 11 2019, 6:57 AM
dcederman updated the diff for D55763: [Sparc] Add Sparc V8 support.

Added functionality to be able to differ between DW_CFA_AARCH64_negate_ra_state and DW_CFA_GNU_window_save.

Jan 11 2019, 6:35 AM

Jan 10 2019

dcederman updated the diff for D55763: [Sparc] Add Sparc V8 support.

For me native support is enough, so I removed the Sparc define from the !_LIBUNWIND_IS_NATIVE_ONLY section. That should make it compile with -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON.

Jan 10 2019, 5:13 AM

Jan 9 2019

dcederman updated the diff for D51206: [Sparc] Add tail call support.

On 64-bit Sparc we can allow tail call optimizations on functions that returns a struct even though the caller does not (and vice versa).

Jan 9 2019, 4:59 AM · Restricted Project, Restricted Project
dcederman added inline comments to D51206: [Sparc] Add tail call support.
Jan 9 2019, 4:59 AM · Restricted Project, Restricted Project
dcederman committed rUNW350705: [Sparc] Add Sparc V8 support.
[Sparc] Add Sparc V8 support
Jan 9 2019, 4:16 AM
dcederman committed rL350705: [Sparc] Add Sparc V8 support.
[Sparc] Add Sparc V8 support
Jan 9 2019, 4:10 AM
dcederman closed D55763: [Sparc] Add Sparc V8 support.
Jan 9 2019, 4:09 AM

Jan 8 2019

dcederman updated the diff for D51206: [Sparc] Add tail call support.

Do not tail call opt if either the callee or caller returns a struct and the other does not.

Jan 8 2019, 5:40 AM · Restricted Project, Restricted Project
dcederman updated the diff for D55763: [Sparc] Add Sparc V8 support.

Removed empty lines and moved the trace message to before the operation.

Jan 8 2019, 12:19 AM
dcederman added a comment to D55763: [Sparc] Add Sparc V8 support.

Thanks for the review!

Jan 8 2019, 12:18 AM

Dec 20 2018

dcederman added a comment to D55763: [Sparc] Add Sparc V8 support.

I have been using this Sparc version of libunwind when running the libc++ testsuite and have not had any problems related to libunwind. Does anyone have any additional comments or is it ok to commit?

Dec 20 2018, 6:31 AM

Dec 18 2018

dcederman updated the diff for D55763: [Sparc] Add Sparc V8 support.

This update does not use __builtin_extract_return_addr in _Unwind_GetIP. Instead it modifies the return address in stepWithDwarf, similar to aarch64. It also checks if the instruction at the return address is an unimp instruction. If it is, that means that the function is returning a struct and that we should skip one extra instruction.

Dec 18 2018, 1:23 AM
dcederman added inline comments to D55763: [Sparc] Add Sparc V8 support.
Dec 18 2018, 1:15 AM

Dec 17 2018

dcederman updated the diff for D55763: [Sparc] Add Sparc V8 support.

Only include DW_CFA_GNU_window_save support when compiling for Sparc.

Dec 17 2018, 7:19 AM
dcederman added inline comments to D55763: [Sparc] Add Sparc V8 support.
Dec 17 2018, 7:17 AM
dcederman created D55763: [Sparc] Add Sparc V8 support.
Dec 17 2018, 5:41 AM

Dec 13 2018

dcederman committed rL349048: [Sparc] Add membar assembler tags.
[Sparc] Add membar assembler tags
Dec 13 2018, 7:32 AM
dcederman closed D53491: [Sparc] Add membar assembler tags.
Dec 13 2018, 7:32 AM
dcederman added inline comments to D53491: [Sparc] Add membar assembler tags.
Dec 13 2018, 7:25 AM
dcederman committed rL349045: [Sparc] Use float register for integer constrained with "f" in inline asm.
[Sparc] Use float register for integer constrained with "f" in inline asm
Dec 13 2018, 7:16 AM
dcederman closed D51614: [Sparc] Use float register for integer constrained with "f" in inline asm.
Dec 13 2018, 7:16 AM
dcederman updated the diff for D53491: [Sparc] Add membar assembler tags.

Added a check to make sure that the integer mask is between 0 and 127 when parsing. The immediate is now printed as an integer when outside the valid range. Also fixed a disassembly issue and added some more tests.

Dec 13 2018, 6:50 AM

Nov 23 2018

dcederman added a comment to D50694: [Sparc] Give the option to use the OS reserved global registers.

Any other comments @jyknight , or does it look ok?

Nov 23 2018, 12:52 AM

Oct 22 2018

dcederman created D53491: [Sparc] Add membar assembler tags.
Oct 22 2018, 5:21 AM

Oct 15 2018

dcederman updated the diff for D50694: [Sparc] Give the option to use the OS reserved global registers.

Removed the UseRegG* features and enabled the ReserveRegG6, ReserveRegG7, and ReserveRegG5 (on 32-bit) features by default.

Oct 15 2018, 2:15 AM
dcederman added inline comments to D50694: [Sparc] Give the option to use the OS reserved global registers.
Oct 15 2018, 2:11 AM

Sep 27 2018

dcederman committed rL343210: [Sparc] Remove the support for builtin setjmp/longjmp.
[Sparc] Remove the support for builtin setjmp/longjmp
Sep 27 2018, 6:37 AM
dcederman closed D51487: [Sparc] Remove the support for builtin setjmp/longjmp.
Sep 27 2018, 6:36 AM
dcederman committed rL343203: [Sparc] Add unimp alias.
[Sparc] Add unimp alias
Sep 27 2018, 5:37 AM
dcederman closed D51526: [Sparc] Add unimp alias.
Sep 27 2018, 5:37 AM
dcederman committed rL343202: [Sparc] Add support for the partial write PSR instruction.
[Sparc] Add support for the partial write PSR instruction
Sep 27 2018, 5:37 AM
dcederman closed D48644: [Sparc] Add support for the partial write PSR instruction.
Sep 27 2018, 5:37 AM

Sep 4 2018

dcederman resigned from D24662: [Sparc][LEON] Hardware erratum fix: Insert NOPs around double precision instructions.
Sep 4 2018, 2:15 AM
dcederman abandoned D50969: [Sparc] Improve the builtin setjmp/longjmp.

See https://reviews.llvm.org/D51487 instead.

Sep 4 2018, 2:15 AM
dcederman created D51614: [Sparc] Use float register for integer constrained with "f" in inline asm.
Sep 4 2018, 2:09 AM
dcederman created D51613: [Sparc] Add fixups for the GOTdata_op model.
Sep 4 2018, 2:09 AM

Sep 3 2018

dcederman committed rL341308: [Sparc] allow tls_add/tls_call syntax in assembler parser.
[Sparc] allow tls_add/tls_call syntax in assembler parser
Sep 3 2018, 3:39 AM
dcederman closed D36463: [Sparc] allow tls_add/tls_call syntax in assembler parser.
Sep 3 2018, 3:39 AM
dcederman updated the diff for D36463: [Sparc] allow tls_add/tls_call syntax in assembler parser.

Rebased and changed objdump output check from Unknown to symbol name (Local/Extern).

Sep 3 2018, 2:21 AM
dcederman commandeered D36463: [Sparc] allow tls_add/tls_call syntax in assembler parser.

Ok for me. Are you willing to take the ownership of this?

Sep 3 2018, 1:47 AM

Sep 2 2018

dcederman added a comment to D36463: [Sparc] allow tls_add/tls_call syntax in assembler parser.

The assert does not trigger after https://reviews.llvm.org/rL334383. Is it ok to apply this patch? Just need to change the objdump output from Unknown to the symbol name.

Sep 2 2018, 11:49 PM

Aug 31 2018

dcederman created D51526: [Sparc] Add unimp alias.
Aug 31 2018, 12:43 AM

Aug 30 2018

dcederman committed rL341069: [Sparc] Use ANDN instead of AND if constant can be encoded more efficiently.
[Sparc] Use ANDN instead of AND if constant can be encoded more efficiently
Aug 30 2018, 7:07 AM
dcederman closed D50964: [Sparc] Use ANDN instead of AND if constant can be encoded more efficiently.
Aug 30 2018, 7:07 AM
dcederman created D51487: [Sparc] Remove the support for builtin setjmp/longjmp.
Aug 30 2018, 6:21 AM
dcederman added a comment to D48644: [Sparc] Add support for the partial write PSR instruction.

The partial write psr instruction is now part of binutils (https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=df28970).

Aug 30 2018, 5:06 AM

Aug 27 2018

dcederman added a comment to D48644: [Sparc] Add support for the partial write PSR instruction.

Yes, the SPARC V8e manual did not provide a mnemonic for it so it is invented here. I have submitted a similar patch to binutils so I will hold this patch until the other one gets approved, in case someone wants me to change the name.

Aug 27 2018, 6:42 AM
dcederman added a comment to D50969: [Sparc] Improve the builtin setjmp/longjmp.

I'm fixing them for the failures and to learn about LLVM. I have no use case and I'm perfectly fine with and in favor of removing the support. Can I just revert the patch that introduced the support, or should I submit a removal patch for review?

Aug 27 2018, 6:36 AM
dcederman added a comment to D50964: [Sparc] Use ANDN instead of AND if constant can be encoded more efficiently.

When I was testing the code I saw that it sometimes generated two versions of the same constant, one with the single SETHI with the complement form, and one with the standard SETHI/ORri pair. So I added the hasOneUse() part to prevent the case when a constant is encoded using three instructions instead of just one or two.

Aug 27 2018, 6:12 AM
dcederman committed rL340736: [Sparc] Avoid writing outside array in applyFixup.
[Sparc] Avoid writing outside array in applyFixup
Aug 27 2018, 4:45 AM
dcederman closed D50971: [Sparc] Avoid writing outside array in applyFixup.
Aug 27 2018, 4:45 AM
dcederman committed rL340733: [Sparc] Add support for the cycle counter available in GR740.
[Sparc] Add support for the cycle counter available in GR740
Aug 27 2018, 4:15 AM
dcederman closed D48638: [Sparc] Add support for the cycle counter available in GR740.
Aug 27 2018, 4:14 AM
dcederman added a comment to D48638: [Sparc] Add support for the cycle counter available in GR740.

LGTM.

It's possibly only theoretical at the moment, since I don't know if anything both supports this and is little endian, but --
On a little endian system, will the registers be swapped; that is, would ASR22 hold the 32 LSB instead of ASR23?

Aug 27 2018, 4:11 AM
dcederman committed rL340723: [Sparc] Custom bitcast between f64 and v2i32.
[Sparc] Custom bitcast between f64 and v2i32
Aug 27 2018, 12:16 AM
dcederman closed D49219: [Sparc] Custom bitcast between f64 and v2i32.
Aug 27 2018, 12:16 AM

Aug 24 2018

dcederman created D51206: [Sparc] Add tail call support.
Aug 24 2018, 12:14 AM · Restricted Project, Restricted Project

Aug 22 2018

dcederman created D51085: [Sparc] Add errata workaround pass for GR712RC.
Aug 22 2018, 12:02 AM

Aug 20 2018

dcederman created D50971: [Sparc] Avoid writing outside array in applyFixup.
Aug 20 2018, 6:16 AM
dcederman created D50969: [Sparc] Improve the builtin setjmp/longjmp.
Aug 20 2018, 5:49 AM
dcederman created D50964: [Sparc] Use ANDN instead of AND if constant can be encoded more efficiently.
Aug 20 2018, 3:43 AM
dcederman updated the diff for D48638: [Sparc] Add support for the cycle counter available in GR740.

Reserving registers ASR1-ASR31

Aug 20 2018, 1:04 AM
dcederman updated the diff for D50694: [Sparc] Give the option to use the OS reserved global registers.

Added attributes to prevent %g2-%g5 from being used as scratch register or to allow the use of %g5-%g7 as scratch registers. %g5 is reserved by default for 32-bit but not for 64-bit.

Aug 20 2018, 12:52 AM
dcederman updated the diff for D49219: [Sparc] Custom bitcast between f64 and v2i32.

Moved code into a PerformDAGCombine function.

Aug 20 2018, 12:18 AM

Aug 17 2018

dcederman committed rL340008: [Sparc] Get sret arg size from CallLoweringInfo.getArgs().
[Sparc] Get sret arg size from CallLoweringInfo.getArgs()
Aug 17 2018, 3:40 AM
dcederman closed D48117: [Sparc] Get sret arg size from CallLoweringInfo.getArgs().
Aug 17 2018, 3:40 AM
dcederman committed rL340003: [Sparc] Flush register windows for @llvm.returnaddress(1).
[Sparc] Flush register windows for @llvm.returnaddress(1)
Aug 17 2018, 2:19 AM
dcederman closed D48636: [Sparc] Flush register windows for @llvm.returnaddress(1).
Aug 17 2018, 2:19 AM