Page MenuHomePhabricator

mbrkusanin (Mirko Brkusanin)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 19 2019, 1:58 AM (30 w, 1 d)

Recent Activity

Today

mbrkusanin added a comment to D66795: [Mips] Use appropriate private label prefix based on Mips ABI.

But take a look at LLVMCreateDisasmCPUFeatures function from Disassembler.cpp. If we cannot retrieve MCTargetOptions right in this function, we will have to change "LLVM-C" interface LLVMCreateDisasmCPUFeatures function.

Wed, Sep 18, 8:23 AM · Restricted Project, Restricted Project, Restricted Project
mbrkusanin updated the diff for D66795: [Mips] Use appropriate private label prefix based on Mips ABI.
  • MCTargetOptions is now always passed to MCAsmInfo (or rather createMCAsmInfo). In places where we it wasn't available before we simply pass empty MCTargetOptions.
  • Patch is now for monorepo. Besides LLVM there are now changes to Clang and LLDB. I needed to use monorepo to test if everything builds correctly. If this is accepted I will split it into separate patches if needed.
  • Also it might be best to split this into two changes. First one that adds MCTargetOptions to MCAsmInfo and second one that fixes prefix for Mips which is what I set out to solve.
Wed, Sep 18, 8:16 AM · Restricted Project, Restricted Project, Restricted Project

Fri, Sep 6

mbrkusanin added a comment to D67280: [Mips][msa] Fix inifinite loop for mips.nori.b intrinsic.

More detailed explanation follows:

Fri, Sep 6, 8:39 AM · Restricted Project
mbrkusanin created D67280: [Mips][msa] Fix inifinite loop for mips.nori.b intrinsic.
Fri, Sep 6, 8:30 AM · Restricted Project

Wed, Aug 28

mbrkusanin added a comment to D66795: [Mips] Use appropriate private label prefix based on Mips ABI.

If you remove the default argument from createMCAsmInfo, how many files need to explicitly pass nullptr/None?

Wed, Aug 28, 8:20 AM · Restricted Project, Restricted Project, Restricted Project
mbrkusanin updated the diff for D66795: [Mips] Use appropriate private label prefix based on Mips ABI.

Changed Optional<const MCTargetOptions *> with const MCTargetOptions *

Wed, Aug 28, 8:05 AM · Restricted Project, Restricted Project, Restricted Project

Tue, Aug 27

mbrkusanin added a comment to D66795: [Mips] Use appropriate private label prefix based on Mips ABI.

Would it be possible to require a const MCTargetOptions &Options when creating MCAsmInfo?
If MCTargetOptions isn't always available, how about passing an Optional<MCTargetOptions> to MCAsmInfo? That would be equivalent to the current approach but make it harder to forget calling adjustPrefixes()

Tue, Aug 27, 9:21 AM · Restricted Project, Restricted Project, Restricted Project
mbrkusanin created D66795: [Mips] Use appropriate private label prefix based on Mips ABI.
Tue, Aug 27, 3:42 AM · Restricted Project, Restricted Project, Restricted Project
mbrkusanin added a comment to D66795: [Mips] Use appropriate private label prefix based on Mips ABI.
  • adjustPrefixes() is not called after every call of createMCAsmInfo(), only where MCTargetOptions is available since this is what tells us if ABI is given as argument.
Tue, Aug 27, 3:42 AM · Restricted Project, Restricted Project, Restricted Project

Aug 8 2019

mbrkusanin updated the diff for D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..
  • Rebase
Aug 8 2019, 2:23 AM

Aug 7 2019

mbrkusanin created D65886: [Mips][Codegen] Fix fast-isel mixing of FGR64 and AFGR64 registers.
Aug 7 2019, 8:35 AM · Restricted Project
mbrkusanin updated the diff for D64252: [Mips] Instruction `sc` now accepts symbol as an argument.
  • Removed unused function declarations.
Aug 7 2019, 3:02 AM · Restricted Project

Aug 6 2019

mbrkusanin updated the diff for D64252: [Mips] Instruction `sc` now accepts symbol as an argument.

Symbol with offset was not handled properly on MipsR6. R_MIPS_LO16 (MipsMCExpr::MEK_LO) would write offset into lower 16 bits, where as for R6 version offset is in bits 7-15. Initially I made new type of MCFixup which would only use those bits, but then there was a lot of additional code needed for handling all cases where MCFixups were used. Now we just add ADDIU for R6 and use R_MIPS_LO16 on that instruction which is the same way that gcc works.

Aug 6 2019, 9:05 AM · Restricted Project

Jul 24 2019

mbrkusanin updated the diff for D64252: [Mips] Instruction `sc` now accepts symbol as an argument.
  • Decided to apply diff of the alternative solution because the patch could not be downloaded with just the provided diff.
Jul 24 2019, 9:16 AM · Restricted Project
mbrkusanin added a comment to D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

Sorry for the delay. I was away for a while.

Jul 24 2019, 9:13 AM
mbrkusanin updated the diff for D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..
  • Marked undef DSPControl registers as live-in to the function and basic block.
Jul 24 2019, 9:07 AM

Jul 22 2019

mbrkusanin added a comment to D64252: [Mips] Instruction `sc` now accepts symbol as an argument.

Alternative solution that does not remove out-register would look something like this: https://reviews.llvm.org/differential/diff/211116/

Jul 22 2019, 9:05 AM · Restricted Project

Jul 5 2019

mbrkusanin created D64252: [Mips] Instruction `sc` now accepts symbol as an argument.
Jul 5 2019, 8:52 AM · Restricted Project

Jun 27 2019

mbrkusanin added inline comments to D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..
Jun 27 2019, 9:11 AM
mbrkusanin updated the diff for D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..
  • Added a comment in: removeOperandFromDeadImplRegs()
  • Removed MO.setIsDead() from markOperandInDeadImplRegs() and renamed to checkOperandForDeadImplRegs().
  • Added a comment in: checkOperandForDeadImplRegs().
  • Decided to remove the change from addDSPCtrlRegOperands() which marked RDDSP operands as implicit undef. Machine verifier would fail if only RDDSP was used without some other instruction previously defining a register. We could handle these Undef flags the same way we handle dead flags for other instructions (when we remove dead from previous we can also remove undef from current), but I don't think we need to touch these flags.
Jun 27 2019, 9:06 AM

Jun 26 2019

mbrkusanin updated the diff for D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

Marked all instructions that define part of DSPControl register with TSFlag named defsDSPCtrl. This helps us avoid running unnecessary code on instructions that don't need it.

Jun 26 2019, 6:11 AM

Jun 19 2019

mbrkusanin updated the diff for D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

Fixed comment typos.

Jun 19 2019, 5:38 AM
mbrkusanin updated the diff for D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

All changes are now in code for Mips target. Only change in common code is in removing there lines in LiveVariables.cpp that are preceded by a FIXME comment. Also, tests that check other DSPControl registers are added.

Jun 19 2019, 5:11 AM
mbrkusanin added a comment to D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

Problem with handling everything in post-isel hooks is that it is after marking registers as dead. So we would need to mark every instruction that uses any part of DSPControl as having an post-isel hook and there are more than 100 instructions (including MicroMips variants).

Jun 19 2019, 5:11 AM

Jun 12 2019

mbrkusanin created D63199: [Mips] Add s.d instruction alias for Mips1.
Jun 12 2019, 6:23 AM · Restricted Project

Jun 5 2019

mbrkusanin updated the diff for D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

Updated test.

Jun 5 2019, 9:24 AM
mbrkusanin added a comment to D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

I would like to avoid having "undead" registers, which are marked dead but are semantically necessary, at any point. That means never calling setIsDead(false); as part of instruction selection, even if the flags are eventually correct after post-isel hooks run.

Jun 5 2019, 7:03 AM
mbrkusanin updated the diff for D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

Added test.

Jun 5 2019, 6:52 AM

May 30 2019

mbrkusanin added a comment to D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..

The changes can be seen in some functions in test CodeGen/Mips/dsp-r1.ll. Where we previously had:

May 30 2019, 5:43 AM
mbrkusanin created D62653: [Mips][DSP] Fix physregs incorrectly marked as dead..
May 30 2019, 5:19 AM

May 14 2019

mbrkusanin added a comment to D61899: [Mips] LLVM and GAS now use same instructions for CFA Definition. NFCI.

It seems that using the instruction without offset does not affect exception
handling. Testing it on a couple of simple examples where unwinding the stack
is necessary gives correct output. This is expected since GAS uses the same
instructions. Documentation does not indicate that there are any differences
between these two instructions if we don't change the offset (in code before the
patch value passed was +0). This patch may be unnecessary but if we want to be
sure that there aren't any unexpected problems down the line we could apply it.

May 14 2019, 7:34 AM · Restricted Project
mbrkusanin created D61899: [Mips] LLVM and GAS now use same instructions for CFA Definition. NFCI.
May 14 2019, 7:34 AM · Restricted Project

Apr 24 2019

mbrkusanin updated the diff for D61069: [MIPS] Use custom bitcast lowering to avoid excessive instructions.

Addressed review comments.

Apr 24 2019, 9:30 AM · Restricted Project
mbrkusanin created D61069: [MIPS] Use custom bitcast lowering to avoid excessive instructions.
Apr 24 2019, 7:43 AM · Restricted Project

Mar 19 2019

mbrkusanin added a comment to D59499: [MIPS] [microMIPS] Enable dynamic stack realignment..

We simply weaken the condition to not include micromips.

I guess you mean mips16 not micromips in the comment to the patch. Right?

Mar 19 2019, 7:38 AM · Restricted Project
mbrkusanin updated the diff for D59499: [MIPS] [microMIPS] Enable dynamic stack realignment..

Comments fixed.

Mar 19 2019, 7:29 AM · Restricted Project

Mar 18 2019

mbrkusanin added a comment to D59499: [MIPS] [microMIPS] Enable dynamic stack realignment..

Test was updated to include micromips. Since this is an older test the output was not generated with update_llc_test_checks.py so only lines that differ from mips were updated using new prefixes. Should I update the test with the given script? It could give quite a large output. Also new prefixes for each line might need to be introduced.

Mar 18 2019, 10:27 AM · Restricted Project
mbrkusanin created D59499: [MIPS] [microMIPS] Enable dynamic stack realignment..
Mar 18 2019, 10:22 AM · Restricted Project

Mar 13 2019

mbrkusanin added a comment to D59204: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM expansion.

For me it already says that this revision is abandoned. I abandoned it back when we decided to combine this patch and it's parent.

Mar 13 2019, 5:14 AM

Mar 11 2019

mbrkusanin updated the diff for D59203: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM matching and expansion.

Removed micromips 32r6 RUN: line. MTHI and MTLO were removed from micromips R6 so this test is unnecessary.

Mar 11 2019, 7:47 AM · Restricted Project
mbrkusanin updated the diff for D59203: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM matching and expansion.

Removed micromips-pseudo-mtlohi-match.ll

Mar 11 2019, 7:19 AM · Restricted Project
mbrkusanin abandoned D59204: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM expansion.

Combined with it's parent revision.

Mar 11 2019, 5:34 AM
mbrkusanin updated the diff for D59203: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM matching and expansion.

Combined with it's child revision D59204.

Mar 11 2019, 5:33 AM · Restricted Project
mbrkusanin added a child revision for D59203: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM matching and expansion: D59204: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM expansion.
Mar 11 2019, 3:39 AM · Restricted Project
mbrkusanin added a parent revision for D59204: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM expansion: D59203: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM matching and expansion.
Mar 11 2019, 3:39 AM
mbrkusanin created D59204: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM expansion.
Mar 11 2019, 3:38 AM
mbrkusanin created D59203: [MIPS] [microMIPS] Fix PseudoMTLOHI_MM matching and expansion.
Mar 11 2019, 3:38 AM · Restricted Project

Mar 8 2019

mbrkusanin updated the diff for D58722: [MIPS] [microMIPS] Pattern match TruncIntFP.

Addressed review comments.

Mar 8 2019, 4:07 AM · Restricted Project

Mar 7 2019

mbrkusanin added inline comments to D58722: [MIPS] [microMIPS] Pattern match TruncIntFP.
Mar 7 2019, 9:10 AM · Restricted Project
mbrkusanin updated the diff for D58722: [MIPS] [microMIPS] Pattern match TruncIntFP.
Mar 7 2019, 9:04 AM · Restricted Project

Mar 6 2019

mbrkusanin retitled D58722: [MIPS] [microMIPS] Pattern match TruncIntFP from [MIPS] [microMIPS] Pattern match TRUNC_W_S_MM to [MIPS] [microMIPS] Pattern match TruncIntFP.
Mar 6 2019, 7:26 AM · Restricted Project
mbrkusanin updated the diff for D58722: [MIPS] [microMIPS] Pattern match TruncIntFP.

Pattern matches for other configurations are added. Thanks for mentioning that. I've also added -asm-show-inst to RUN: lines that show which version of TRUNC_W will be chosen since that is what this patch is doing.

Mar 6 2019, 7:23 AM · Restricted Project

Feb 27 2019

mbrkusanin created D58722: [MIPS] [microMIPS] Pattern match TruncIntFP.
Feb 27 2019, 9:07 AM · Restricted Project

Feb 22 2019

mbrkusanin updated the diff for D58507: [MIPS] [microMIPS] Fix for filling delay slots for PseudoIndirectBranch_MM.

Addressed review comments.

Feb 22 2019, 5:02 AM · Restricted Project

Feb 21 2019

mbrkusanin created D58507: [MIPS] [microMIPS] Fix for filling delay slots for PseudoIndirectBranch_MM.
Feb 21 2019, 7:31 AM · Restricted Project