Displaying 20 results from an estimated 3000 matches similar to: "Supporting freeze in GlobalISel / freeze semantics in MIR"
2020 Jun 08
2
Nested instruction patterns rejected by GlobalISel when having registers in Defs
Hi Daniel,
Thanks for replying; I was hoping to get in touch with you on this issue.
I had a look at how SelectionIDAG does it when generating the matcher table,
and it does consider the implicit defs as additional output. Here is the
match table generated for the pattern:
/* 0*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 3*/ OPC_MoveChild0,
/* 4*/ OPC_CheckOpcode,
2020 Jun 04
2
Nested instruction patterns rejected by GlobalISel when having registers in Defs
Hi Dominik,
Thanks for your reply.
In my case, the Defs is the cause of the problem. Or rather, it is part of
the problem, because when I remove it from the instruction TableGen gives me
a different error message which concerns a part which is deeper into the
pattern tree, so at least it is able to proceed beyond that part of the
pattern. I have also stepped TableGen inside gdb and
2020 Mar 25
2
[GlobalISel] Narrowing uneven/non-pow-2 types
Hi Matt,
thanks for responding. I left a couple of comments down below.
Am 24.03.20 um 18:26 schrieb Matt Arsenault:
>
>> On Mar 24, 2020, at 12:24, Dominik Montada via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>
>> Hi all,
>>
>> recently when working with GlobalISel we have often encountered cases in the legalizer where instructions could not be
2020 Jun 04
2
Nested instruction patterns rejected by GlobalISel when having registers in Defs
Hi,
I am in the process of porting our target to GlobalISel, and have encountered a problem. Nearly all instructions in our instruction set make modifications to a CC register, and hence are defined as follows:
let ..., Defs = [CCReg] in
def shfts_a32_imm7: Instruction<(outs OurRC:$dst), ...>;
What's more, many of these instructions have patterns where the instruction itself
2020 Mar 24
3
[GlobalISel] Narrowing uneven/non-pow-2 types
Hi all,
recently when working with GlobalISel we have often encountered cases in
the legalizer where instructions could not be narrowed because the
narrowing code relies on G_UNMERGE_VALUES and therefore requires the
source type to be a multiple of the narrow type. Often times these
instructions can be widened without any problem to a fitting type.
This has us writing legalization rules like
2020 Feb 27
2
Correct modelling of instructions with types smaller than the register class
Hi Quentin, Hi Amara,
I was following your discussion on D75086 regarding declaring types as
legal even if they are smaller than the actual register class (e.g. s16
and gpr32). We are working on a backend which only has 32 and 64-bit
registers and we recently had a problem regarding exactly this where we
had to declare G_UNMERGE_VALUES and G_MERGE_VALUES with a smaller type
of <s32 as
2020 Oct 09
2
GlobalISel round table follow up: register bank select
Hi Quentin,
Am 08.10.20 um 21:17 schrieb Quentin Colombet:
> Hi Dominik,
>
>> On Oct 8, 2020, at 5:03 AM, Dominik Montada
>> <dominik.montada at hightec-rt.com
>> <mailto:dominik.montada at hightec-rt.com>> wrote:
>>
>> Hi Quentin,
>>
>> thanks for picking up the conversation!
>>
>> > I think we should step back and
2020 Mar 02
2
Correct modelling of instructions with types smaller than the register class
Hi Quentin,
thank you for the reply! This clears up a lot of the questions I was
having. It seems like we should definitely invest some time in rewriting
some of our legalization rules then! I also posted some questions
further down below. I would appreciate getting your opinion on them.
> Hi Dominik,
>
> I’ll do a brief reply here and if you want more information we can talk further
2020 Jul 03
2
Exceptions not getting caught on bare-metal target
Hi,
We're working on adding exception handling support for a downstream
bare-metal target. I read through the LLVM exception handling docs [1]
and went through some patches from other backends to understand what
parts we need to implement.
We're now at a point were it feels like it should work, but
unfortunately exceptions are still not getting caught. Our target uses
DWARF
2020 Mar 12
4
Correct modelling of instructions with types smaller than the register class
Hi Quentin,
thank you for the reply! I have a couple more questions that came up
when I tried to implement this today. I hope you can help me out with
this again!
Am 09.03.20 um 23:31 schrieb Quentin Colombet:
> I would expect that you could create a register class and register
> bank for the special register. That way you have something to map to
> when you do register bank select.
2020 Oct 08
2
GlobalISel round table follow up: register bank select
Hi Quentin,
thanks for picking up the conversation!
> I think we should step back and check what we want before investing
any time in some rewrite.
That is a very fair point and I might have been getting ahead of myself
in my last email.
What I would like to see from RegBankSelect is to produce the mapping
with the overall lowest cost. Keeping track of all different
combinations of
2020 Jun 25
2
[libcxx-dev] How to include abi and unwind tests in libcxx test suite in standalone mode
I just landed these patches:
commit c55051eea5d3cd57abfd9727f519b670517704d9
Author: Louis Dionne <ldionne at apple.com>
Date: Thu Jun 25 12:02:43 2020 -0400
[libunwind] Allow specifying custom Lit config files
This is the libunwind counterpart of 0c66af970c80.
commit 33c9c10d183371edc95fa936705bef56f55ab611
Author: Louis Dionne <ldionne at
2020 Oct 07
2
GlobalISel round table follow-up: multi-stage legalization
Hi all,
first of all thanks to Matt for hosting the round table yesterday and to
everyone else for their time and the valuable discussions. As promised
in the chat yesterday, here is the email regarding the legalizer /
artifact combiner issue we talked about. I will send a separate email
regarding the regbankselect discussion.
In case someone on the list didn't attend the round table
2020 Oct 07
2
GlobalISel round table follow up: register bank select
Hi all,
this is the second email for the round table follow-up, this time
regarding the issues around the greedy RegBankSelect and alternative
mappings.
The issue I brought up was that because RegBankSelect goes top-down, it
never looks at all available mappings for the operands when considering
which of the mappings to apply to the current instruction. In our
architecture we have one
2020 Jun 25
2
How to include abi and unwind tests in libcxx test suite in standalone mode
Hi Louis,
sorry for bothering you once more about the libcxx test suite! I was
wondering whether you could help with some of my problems again.
After the recent discussion on the mailing list and your diff, I was
able to set up cross-compilation and remote-execution of the libcxx test
suite, so thank you for that!
We have split up the build of the libraries into different stages, so
libcxx,
2020 Jun 19
3
FileCheck
Sorry if I wasn't clear about my use case. In my daily dev work, I do many local "ninja check"s, or "llvm-lit" on a subdirectory as a quick(er) smoke test if I am making changes in that area (e.g. "llvm-lit ../llvm/test/CodeGen"). Nothing wrong here, as indeed nothing changed here. But in case of a test failure, I want to run just that test:
bin/llvm-lit
2020 Apr 06
4
[GlobalISel] Extended inline assembler support
Hi!
So far, GlobalISel only supports very basic inline assembler constructs
(no input/output operands, only simple memory clobbers).
In [0], I'm adding support for generic register, immediate, memory and
clobber constraints.
The code is more or less a direct port from the handling in
SelectionDAGBuilder.
Before moving on with target specific constraints, I'd like to discuss
the
2017 Jan 17
2
RFC: Building GlobalISel by default
Hi Michael,
> On Jan 13, 2017, at 6:38 PM, Michael Kuperstein <mkuper at google.com> wrote:
>
> As a person not developing on GlobalISel, I can already play with it by setting the flag. ;-)
>
> The main (and huge) benefit I see is that it will get tested by default.
I agree.
> So, I think it's mainly a question of maturity - if my (non-GlobalISel) change breaks
2017 Aug 15
5
[RFC] mir-canon: A new tool for canonicalizing MIR for cleaner diffing.
Hi,
My name is Puyan and I've been exploring ways to improve the state of
instruction level diffing using llvm and MIR. Below is a proposal for a new
llvm tool meant to address issues encountered when diffing at the machine
level. I'm eager to hear the community's feedback.
Thanks
PL
mir-canon: A new tool for canonicalizing MIR for cleaner diffing.
Problem Statement and
2017 Jul 28
2
Tail merging "undef" with a defined register: wrong code
I've looked into that and it's not going to be simple, unfortunately.
Here's the original example again:
---
name: fred
tracksRegLiveness: true
body: |
bb.0:
successors: %bb.1, %bb.2
J2_jumpt undef %p0, %bb.2, implicit-def %pc
J2_jump %bb.1, implicit-def %pc
bb.1:
successors: %bb.3
%r0 = L2_loadruh_io undef %r0, 0
PS_storerhabs 0, killed