atanasyan (Simon Atanasyan)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 6 2013, 6:15 AM (237 w, 4 d)

Recent Activity

Fri, Sep 22

atanasyan accepted D38168: [mips] Accept but ignore -m(no-)branch-likely.

LGTM

Fri, Sep 22, 2:19 AM

Thu, Sep 21

atanasyan closed D28611: [ELF][MIPS] - Explicitly list supported relocations for MIPS target..

Superseded by commit rL313882.

Thu, Sep 21, 7:46 AM
atanasyan committed rL313882: [MIPS] Explicitly list supported relocations for MIPS target. NFC.
[MIPS] Explicitly list supported relocations for MIPS target. NFC
Thu, Sep 21, 7:42 AM
atanasyan committed rL313879: [mips] Implement generation of relocations "chains" used by N32 ABI.
[mips] Implement generation of relocations "chains" used by N32 ABI
Thu, Sep 21, 7:06 AM
atanasyan committed rL313878: [mips] Do not pass redundant IsN64 flag to MCELFObjectTargetWriter. NFC.
[mips] Do not pass redundant IsN64 flag to MCELFObjectTargetWriter. NFC
Thu, Sep 21, 7:06 AM
atanasyan closed D33512: Simplify MipsRldMapSection::writeTo.

Closed by commit rL303812.

Thu, Sep 21, 7:00 AM
atanasyan closed D37749: Don't make _gp absolute.

Closed by commit rL313333.

Thu, Sep 21, 6:58 AM
atanasyan abandoned D27662: [triple+llc+llvm-mc] Make triple and ABI name consistent.

The N32 ABI support will be implemented as another series of patches/changes. Like rL313160, rL313231, rL313873 ...

Thu, Sep 21, 6:57 AM
atanasyan abandoned D33726: [driver][netbsd] Build and pass `-L` arguments to the linker.
Thu, Sep 21, 6:52 AM
atanasyan added a comment to D37960: [mips] Fix relocation record format and ELF header for N32 ABI.

Thanks for review.

Thu, Sep 21, 3:46 AM
atanasyan committed rL313873: [mips] Fix relocation record format and ELF header for N32 ABI.
[mips] Fix relocation record format and ELF header for N32 ABI
Thu, Sep 21, 3:46 AM
atanasyan closed D37960: [mips] Fix relocation record format and ELF header for N32 ABI by committing rL313873: [mips] Fix relocation record format and ELF header for N32 ABI.
Thu, Sep 21, 3:45 AM

Wed, Sep 20

atanasyan updated the diff for D37960: [mips] Fix relocation record format and ELF header for N32 ABI.

Addressed review comment:

  • Add FIXME comment to the cpsetup.s that we implicitly check the -mno-shared case only.
  • Enable more checks in the elf_header.s and delete invalid checking for the ELF_MIPS_PIC flag.
Wed, Sep 20, 11:37 PM
atanasyan committed rL313864: [MIPS] Restore checking of the disassembler output. NFC.
[MIPS] Restore checking of the disassembler output. NFC
Wed, Sep 20, 9:57 PM
atanasyan committed rL313815: [mips] Fix calculation of a branch instruction offset to escape left shift of….
[mips] Fix calculation of a branch instruction offset to escape left shift of…
Wed, Sep 20, 2:03 PM
atanasyan committed rL313761: [mips] Add a valid test case to check the reason of the recent build-bot….
[mips] Add a valid test case to check the reason of the recent build-bot…
Wed, Sep 20, 8:59 AM
atanasyan accepted D38080: [obj2yaml] Don't crash for input files without symbol table.

LGTM

Wed, Sep 20, 7:05 AM

Tue, Sep 19

atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.

Rebased against the trunk.

Tue, Sep 19, 10:03 PM · lld
atanasyan added inline comments to D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.
Tue, Sep 19, 9:59 PM · lld
atanasyan added inline comments to D37960: [mips] Fix relocation record format and ELF header for N32 ABI.
Tue, Sep 19, 11:30 AM

Sun, Sep 17

atanasyan created D37960: [mips] Fix relocation record format and ELF header for N32 ABI.
Sun, Sep 17, 1:48 AM

Fri, Sep 15

atanasyan updated the diff for D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.

Address review comments:

  • Removed a temporary variable in the isMicroMips function.
  • Moved MipsEFlags global variable to the Config. Calculation of its value requires iterating over all input object files so doing that each time when we call getMipsEFlags() is expensive.
Fri, Sep 15, 10:55 PM · lld

Thu, Sep 14

atanasyan accepted D37749: Don't make _gp absolute.

Is it still possible to assign _gp an arbitrary value using a linker script? For example, point into the middle of .sdata section?

test/ELF/mips-gp-ext.s tests that, no?

Thu, Sep 14, 6:44 AM

Wed, Sep 13

atanasyan committed rL313231: [mips] Recognise the triple used by Debian for MIPS n32 ABI.
[mips] Recognise the triple used by Debian for MIPS n32 ABI
Wed, Sep 13, 11:51 PM
atanasyan committed rL313160: [mips] Add unitests to check parsing MIPS triples. NFC.
[mips] Add unitests to check parsing MIPS triples. NFC
Wed, Sep 13, 10:37 AM
atanasyan accepted D34887: [mips] Implement the 'dext' aliases and it's disassembly alias..

LGTM

Wed, Sep 13, 5:17 AM
atanasyan added a comment to D36579: [ELF] - Do not fail when set versions for linkerscript's symbol aliases.

MIPS part is LGTM.

It's interesting that _gp_disp and __gnu_local_gp have incorrect binding and visibility for so long time. I will fix that later.

Thanks for looking. It only happens for _gp_disp and __gnu_local_gp if them are assigned from script to something, I guess that is just a rare case.
Also I think that other special symbols are also affected. I did not yet check, but I think that for example __ehdr_start, __executable_start, __dso_handle
will remain hidden even if be assigned from script.

Wed, Sep 13, 3:55 AM

Tue, Sep 12

atanasyan added a comment to D37749: Don't make _gp absolute.

Is it still possible to assign _gp an arbitrary value using a linker script? For example, point into the middle of .sdata section?

Tue, Sep 12, 2:45 PM
atanasyan committed rL313040: [MIPS] Check raw binary file content instead of disassembled code. NFC.
[MIPS] Check raw binary file content instead of disassembled code. NFC
Tue, Sep 12, 9:11 AM
atanasyan added a comment to D36579: [ELF] - Do not fail when set versions for linkerscript's symbol aliases.

MIPS part is LGTM.

Tue, Sep 12, 8:48 AM
atanasyan added inline comments to D34887: [mips] Implement the 'dext' aliases and it's disassembly alias..
Tue, Sep 12, 8:27 AM
atanasyan created D37747: [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code.
Tue, Sep 12, 8:15 AM · lld
atanasyan committed rL313028: [MIPS] Initial support of microMIPS code linking.
[MIPS] Initial support of microMIPS code linking
Tue, Sep 12, 6:09 AM
atanasyan closed D37335: [MIPS] Initial support of microMIPS code linking by committing rL313028: [MIPS] Initial support of microMIPS code linking.
Tue, Sep 12, 6:09 AM · lld

Thu, Sep 7

atanasyan committed rL312720: [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC.
[mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC
Thu, Sep 7, 5:55 AM
atanasyan closed D37519: [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC by committing rL312720: [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC.
Thu, Sep 7, 5:55 AM

Wed, Sep 6

atanasyan committed rL312701: [mips] Replace Triple::Environment check by the isGNUEnvironment() call. NFC.
[mips] Replace Triple::Environment check by the isGNUEnvironment() call. NFC
Wed, Sep 6, 11:06 PM
atanasyan updated the diff for D37335: [MIPS] Initial support of microMIPS code linking.

Address review comments: added blank lines, curly brackets, replaced LLVM_FALLTHROUGH by actual code.

Wed, Sep 6, 12:15 PM · lld
atanasyan created D37519: [mips] Use RegisterMCAsmBackend to register all MIPS asm backends. NFC.
Wed, Sep 6, 7:53 AM

Tue, Sep 5

atanasyan updated the diff for D37335: [MIPS] Initial support of microMIPS code linking.
  • Added comments to explain memset calls
  • Fixed violating the strict aliasing rule.
Tue, Sep 5, 10:09 PM · lld
atanasyan added inline comments to D37335: [MIPS] Initial support of microMIPS code linking.
Tue, Sep 5, 3:48 PM · lld

Mon, Sep 4

atanasyan updated the diff for D37335: [MIPS] Initial support of microMIPS code linking.
  • Remove needShuffling function.
  • Remove separate shuffle and unshuffle functions and move the code into the writeMicroRelocation32 routine. Now we "unsuffle" data when read implicit addend and "unshuffle" and then "shuffle" data back when writing result of microMIPS relocation.
  • Fix shuffling of 16-bit words. Do it iif target binary is little-endian.
  • Keep memset calls in writePltHeader and writePlt methods. In short, size of actual PLT entry can be less than PltEntrySize and we need to fill unused space by "nops". When we initialize PltEntrySize and PltHeaderSize fields we do not know what kind of PLT header/entry we will need to create: regular of microMIPS. These entries have different sizes. Ideally, if a PLT entry is referenced by microMIPS code only this entry should contain microMIPS code, if a PLT entry is referenced by regular code this entry should contain regular code. In a "mixed" case the PLT entry can be either microMIPS or regular, but each "cross-mode-call" has additional cost. Now LLD cannot: a) maintain PLT records with different sizes; b) record type of references (regular / microMIPS) for a PLT entry. To simplify the patch I assume that usually the most or all code have the same type regular or microMIPS. I allocate space for the largest PLT header/entry, but at the time of PLT creation I write either regular or microMIPS entries only. In the last case PLT has gaps which needs to be filled by "nops".
Mon, Sep 4, 4:39 PM · lld
atanasyan committed rL312495: [MIPS] Convert template parameters to function arguments. NFC.
[MIPS] Convert template parameters to function arguments. NFC
Mon, Sep 4, 9:18 AM
atanasyan committed rL312494: [MIPS] Add curly brackets to improve code readability. NFC..
[MIPS] Add curly brackets to improve code readability. NFC.
Mon, Sep 4, 9:18 AM

Thu, Aug 31

atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.

Rebased against the trunk.

Thu, Aug 31, 10:20 PM · lld
atanasyan created D37335: [MIPS] Initial support of microMIPS code linking.
Thu, Aug 31, 7:37 AM · lld

Mon, Aug 28

atanasyan committed rL311889: [MIPS] Remove unused function's argument. NFC.
[MIPS] Remove unused function's argument. NFC
Mon, Aug 28, 7:42 AM

Aug 24 2017

atanasyan committed rL311711: [MIPS] Keep all code read addends in the `getImplicitAddend` function.
[MIPS] Keep all code read addends in the `getImplicitAddend` function
Aug 24 2017, 2:58 PM
atanasyan committed rL311712: [MIPS] Merge multiple functions for writing relocation result into the single….
[MIPS] Merge multiple functions for writing relocation result into the single…
Aug 24 2017, 2:58 PM
atanasyan committed rL311710: [MIPS] Remove redundant function getPcRelocAddend. NFC.
[MIPS] Remove redundant function getPcRelocAddend. NFC
Aug 24 2017, 2:58 PM
atanasyan accepted D37077: [mips][Release Notes] Release notes for 5.0.

Does it make a sense to mention support of micromips / nomicromips attributes (D33363, D33364)?

Aug 24 2017, 1:29 AM

Aug 21 2017

atanasyan committed rL311334: [mips] Remove checking of the redundant condition. NFC.
[mips] Remove checking of the redundant condition. NFC
Aug 21 2017, 7:09 AM

Aug 16 2017

atanasyan committed rL311031: [mips] Handle R_MIPS_TLS_DTPREL32/64 relocations in the RelocVisitor.
[mips] Handle R_MIPS_TLS_DTPREL32/64 relocations in the RelocVisitor
Aug 16 2017, 12:04 PM

Aug 15 2017

atanasyan accepted D36616: [mips] Handle variables with an explicit section and interactions with .sdata, .sbss.

LGTM

Aug 15 2017, 7:34 AM

Aug 10 2017

atanasyan committed rL310615: [mips] Group all `-mabicalls` related checks in the single place. NFC.
[mips] Group all `-mabicalls` related checks in the single place. NFC
Aug 10 2017, 8:43 AM
atanasyan committed rL310614: [mips] Show warning in case of mixing -mlong-calls and -mabicalls options.
[mips] Show warning in case of mixing -mlong-calls and -mabicalls options
Aug 10 2017, 8:43 AM
atanasyan closed D36551: [mips] Show warning in case of mixing -mlong-calls and -mabicalls options by committing rL310614: [mips] Show warning in case of mixing -mlong-calls and -mabicalls options.
Aug 10 2017, 8:43 AM · Restricted Project
atanasyan committed rL310613: [mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI.
[mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI
Aug 10 2017, 8:43 AM
atanasyan closed D36550: [mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI by committing rL310613: [mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI.
Aug 10 2017, 8:43 AM · Restricted Project
atanasyan added inline comments to D36551: [mips] Show warning in case of mixing -mlong-calls and -mabicalls options.
Aug 10 2017, 6:19 AM · Restricted Project
atanasyan added inline comments to D36551: [mips] Show warning in case of mixing -mlong-calls and -mabicalls options.
Aug 10 2017, 6:07 AM · Restricted Project
atanasyan updated the diff for D36551: [mips] Show warning in case of mixing -mlong-calls and -mabicalls options.
  • Addressed review comments.
Aug 10 2017, 5:42 AM · Restricted Project
atanasyan updated the diff for D36550: [mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI.
  • Addressed review comments.
Aug 10 2017, 5:42 AM · Restricted Project

Aug 9 2017

atanasyan accepted D36472: [mips] Lift the assertion on the types that can be used with MipsGPRel.

LGTM

Aug 9 2017, 2:12 PM
atanasyan created D36551: [mips] Show warning in case of mixing -mlong-calls and -mabicalls options.
Aug 9 2017, 2:10 PM · Restricted Project
atanasyan added a dependent revision for D36550: [mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI: D36551: [mips] Show warning in case of mixing -mlong-calls and -mabicalls options.
Aug 9 2017, 2:10 PM · Restricted Project
atanasyan created D36550: [mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI.
Aug 9 2017, 2:07 PM · Restricted Project

Aug 8 2017

atanasyan added a comment to D36208: [mips] Enable `long_call/short_call` attributes on MIPS64.

Thanks for review.

Aug 8 2017, 2:20 PM · Restricted Project
atanasyan committed rL310418: [mips] Enable `long_call/short_call` attributes on MIPS64.
[mips] Enable `long_call/short_call` attributes on MIPS64
Aug 8 2017, 2:19 PM
atanasyan closed D36208: [mips] Enable `long_call/short_call` attributes on MIPS64 by committing rL310418: [mips] Enable `long_call/short_call` attributes on MIPS64.
Aug 8 2017, 2:18 PM · Restricted Project
atanasyan closed D35480: [mips] Support `long_call/far/near` attributes passed by front-end.

Closed by commit rL308606

Aug 8 2017, 12:33 PM
atanasyan updated the diff for D36208: [mips] Enable `long_call/short_call` attributes on MIPS64.
  • Renamed TargetMips to TargetMips32
Aug 8 2017, 12:28 PM · Restricted Project

Aug 4 2017

atanasyan added a comment to D36326: [MIPS] Use ABI to determine stack alignment..

Could you add test cases?

Aug 4 2017, 11:45 PM
atanasyan accepted D36315: [mips] Support implicit gpopt with N64 when using -fno-pic.

LGTM

Aug 4 2017, 11:30 PM
atanasyan committed rL310037: [mips] Code formatting fix. NFC.
[mips] Code formatting fix. NFC
Aug 4 2017, 1:26 AM
atanasyan committed rL310038: [mips] Fix typo (missed space) in the warning message.
[mips] Fix typo (missed space) in the warning message
Aug 4 2017, 1:26 AM

Aug 3 2017

atanasyan accepted D35917: [mips] Implement -muninit-const-in-rodata.

LGTM

Aug 3 2017, 6:47 AM
atanasyan updated the diff for D36208: [mips] Enable `long_call/short_call` attributes on MIPS64.

Simplify and reduce the patch. Keep mips16, micromips, and interrupt attributes handling unchanged. The only MIPS specific attributes supported on MIPS64 targets are long_call/short_call/far/near.

Aug 3 2017, 5:48 AM · Restricted Project
atanasyan added inline comments to D35917: [mips] Implement -muninit-const-in-rodata.
Aug 3 2017, 5:39 AM

Aug 2 2017

atanasyan added inline comments to D36208: [mips] Enable `long_call/short_call` attributes on MIPS64.
Aug 2 2017, 11:57 PM · Restricted Project
atanasyan added a comment to D36208: [mips] Enable `long_call/short_call` attributes on MIPS64.

Currently there is no support in the backend for the interrupt attribute for mips64 / using N32 & N64 abis, it will give a fatal error. Previously the backend lacked support for the static relocation model which is an expected requirement for interrupt handlers.

microMIPS32r(3|6) is only supported for the O32 ABI, as microMIPS64R6 is deprecated and going to be removed. There is no support for the published microMIPS64R3 ISA.

Aug 2 2017, 3:56 AM · Restricted Project

Aug 1 2017

atanasyan created D36208: [mips] Enable `long_call/short_call` attributes on MIPS64.
Aug 1 2017, 10:18 PM · Restricted Project
atanasyan updated the diff for D31528: [ELF][MIPS] Multi-GOT implementation.

Rebased against the trunk.

Aug 1 2017, 7:42 AM · lld

Jul 31 2017

atanasyan accepted D35914: [mips] Add support -m(no-)embedded-data option.

LGTM

Jul 31 2017, 3:40 PM
atanasyan added a comment to D35982: [mips] Introducing option -mabs=[legacy/2008].

Is it possible to factor out Nan => IEEE754 renaming into the separate patch?

Jul 31 2017, 8:32 AM

Jul 21 2017

atanasyan added a comment to D35686: [mips] Support -membedded-data and fix a related bug.

Feel free to commit the patch.

Jul 21 2017, 6:55 AM
atanasyan committed rL308719: [mips] Add `short_call` to the set of `long_call/far/near` attributes.
[mips] Add `short_call` to the set of `long_call/far/near` attributes
Jul 21 2017, 1:12 AM

Jul 20 2017

atanasyan added a comment to D31528: [ELF][MIPS] Multi-GOT implementation.

Ping?

Jul 20 2017, 11:24 PM · lld
atanasyan accepted D35686: [mips] Support -membedded-data and fix a related bug.

LGTM with minor nits.

Jul 20 2017, 2:49 PM
atanasyan committed rL308667: [CodeGen][mips] Support `long_call/far/near` attributes.
[CodeGen][mips] Support `long_call/far/near` attributes
Jul 20 2017, 1:35 PM
atanasyan closed D35479: [CodeGen][mips] Support `long_call/far/near` attributes by committing rL308667: [CodeGen][mips] Support `long_call/far/near` attributes.
Jul 20 2017, 1:35 PM · Restricted Project
atanasyan committed rL308606: [mips] Support `long_call/far/near` attributes passed by front-end.
[mips] Support `long_call/far/near` attributes passed by front-end
Jul 20 2017, 5:20 AM
atanasyan updated the diff for D35479: [CodeGen][mips] Support `long_call/far/near` attributes.

Addressed review comments.

Jul 20 2017, 1:28 AM · Restricted Project

Jul 19 2017

atanasyan updated the diff for D35479: [CodeGen][mips] Support `long_call/far/near` attributes.

My bad. I did not read your comment thoroughly.

Jul 19 2017, 11:11 PM · Restricted Project
atanasyan added a comment to D21292: [mips] Correct ELF format for N32..

Able to compile and run non-PIC n32 binaries for my project. However, lld still crashes when linking PIC n32 object files. I think the fixup_Mips_GPOFF_HI/LO in the ELF writer should also have demux logic to differentiate between n64 and n32, otherwise the 3-in-1 relocation entry may be written to n32 and crashes lld.

Jul 19 2017, 2:29 PM
atanasyan updated the diff for D35479: [CodeGen][mips] Support `long_call/far/near` attributes.
  • New wording of attributes documentation and comments.
  • Remove redundant if-return statements.
Jul 19 2017, 2:26 PM · Restricted Project
atanasyan updated the diff for D35480: [mips] Support `long_call/far/near` attributes passed by front-end.
  • Addressed review comments: add 64-bit tests, restore comment in the code.
Jul 19 2017, 5:35 AM
atanasyan added inline comments to D35480: [mips] Support `long_call/far/near` attributes passed by front-end.
Jul 19 2017, 5:33 AM
atanasyan updated the diff for D35479: [CodeGen][mips] Support `long_call/far/near` attributes.
  • Early return from setTargetAttributes methods if IsForDefinition is not true in all cases except handling MIPS "call style" attributes.
Jul 19 2017, 4:31 AM · Restricted Project
atanasyan accepted D35549: [mips] Add support for -m(no-)local-sdata.

LGTM

Jul 19 2017, 4:02 AM