Skip to content

Slot limitations also depends with instructions with immediate values. #55

@utkarshyen

Description

@utkarshyen

Hello @robcasloz

We would like your help in tackling a scenario where slot limitation also depends with instructions with immediates.

Please have a look below,
The VLIW target that we are trying to experiment can access immediates only through references where 1 packet can access three 8 bit immediate values.

Consider the following scenarios,

Scenario 1
BUNDLE {
%r1 = ADDri %r1, 20,
%r0 = ADDri %r0, 20,
}
Please check the allocation slots below,
Scenario_1

Scenario 2
BUNDLE {
%r1 = ADDri %r1, 20,
%r0 = ADDri %r0, 20,
%r2 = SUBri %r2, 20,
}
Please check the allocation slots below,
Scenario_2

Scenario 3
BUNDLE {
%r1 = ADDri %r1, 20,
%r3 = ADD %r3, %r5,
%r4 = SUB %r4, %r5,
}
Please check the allocation slots below,
Scenario_3

Scenario 4
BUNDLE {
%r1 = ADDri %r1, 20,
%r0 = ADDri %r0, 40,
%r2 = SUBri %r2, 60,
}
Please check the allocation slots below,
Scenario_4

Scenario 5
BUNDLE {
%r1 = ADDri %r1, 1200,
%r4 = ADDri %r4, 14,
}
Please check the allocation slots below,
Scenario_5

Scenario 6
BUNDLE {
%r1 = ADDri %r1, 1200,
%r0 = ADDri %r0, 4800,
%r4 = ADDri %r4, 1,
}
Please check the allocation slots below,
Scenario_6

We are facing issue with Scenario 6, as "1200" decimal is converted to two 8 byte decimal value. And considering scenario 6, we are accessing five 8 bit immediate values.

Can you please provide suggestion on how to make Unison aware of such restrictions so that such bundles are not generated.
In our case ADD instr has ALU_ALL slots, thus added in single bundle.

Regards,
Utkarsh

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions