Displaying 11 results from an estimated 11 matches for "predsense".
2012 Aug 20
2
[LLVMdev] TableGen related question for the Hexagon backend
...cate new form of false)
// Define Predicate New relation
def getPredNewOpcode : InstrMapping {
let FilterClass = "PredNewRel";
let RowFields = ["BaseOpcode"];
// ColFields is a list of flags/attributes of the instructions.
let ColFields = ["DotNewType", "PredSense"];
// Here 'DotNewType' of the KeyCol is "" and Predsense can be either 'true'
or 'false'
let KeyCol = ["", "-"];
// Value Column has DotNewType= "new" and predsense same as KeyCol.
// '-' is used to indicate the &quo...
2012 Aug 28
1
[LLVMdev] TableGen backend support to express relations between instruction
...et.td
// Used to filter instructions that have this kind of relationship
let FilterClass = "PredRel";
// Instructions with the same BaseOpcode value form a row.
let RowFields = ["BaseOpcode"];
// Instructions with the same predicate sense form a column.
let ColFields = ["PredSense"];
// The key column is the unpredicated instructions.
let KeyCol = ["nopred"];
// Value columns are PredSense=true and PredSense=false
let ValueCols = [["true"], ["false"]];
}
Instructions need to set some fields in order for the TableGen to relate
them usin...
2012 Aug 17
0
[LLVMdev] TableGen related question for the Hexagon backend
...t the mechanism is already present which allows us to
> relate instructions with each other? What do you mean by a proper query
> language?
Yes, in the very simple sense that you can relate instructions that have the same value in a field:
def ADD {
let BaseOpcode = "ADD";
let PredSense = "nopred";
}
def ADDtrue {
let BaseOpcode = "ADD";
let PredSense = "true";
}
Inside a multiclass, the NAME variable is set to the base name of the defm. You can use that to relate your instructions.
>> You don't want to be limited to a single 'IFo...
2012 Aug 17
2
[LLVMdev] TableGen related question for the Hexagon backend
...ions form the PredRel class.
> let FilterClass = "PredRel";
>
> // Instructions with the same BaseOpcode field form a row.
> let RowFields = ["BaseOpcode"];
>
> // Instructions with the same predicate sense form a column.
> let ColFields = ["PredSense"];
>
> // The key column is the unpredicated instructions.
> let KeyCol = ["nopred"];
>
> // Value columns are predicate=true and predicate=false
> let ValueCols = [["true"], ["false"]]; };
Can you please elaborate it more? It seems in...
2012 Aug 20
0
[LLVMdev] TableGen related question for the Hexagon backend
...ine Predicate New relation
> def getPredNewOpcode : InstrMapping {
> let FilterClass = "PredNewRel";
>
> let RowFields = ["BaseOpcode"];
>
> // ColFields is a list of flags/attributes of the instructions.
> let ColFields = ["DotNewType", "PredSense"];
>
> // Here 'DotNewType' of the KeyCol is "" and Predsense can be either 'true'
> or 'false'
> let KeyCol = ["", "-"];
>
> // Value Column has DotNewType= "new" and predsense same as KeyCol.
> // '-...
2012 Aug 20
2
[LLVMdev] TableGen related question for the Hexagon backend
...ine Predicate New relation
> def getPredNewOpcode : InstrMapping {
> let FilterClass = "PredNewRel";
>
> let RowFields = ["BaseOpcode"];
>
> // ColFields is a list of flags/attributes of the instructions.
> let ColFields = ["DotNewType", "PredSense"];
>
> // Here 'DotNewType' of the KeyCol is "" and Predsense can be either
'true'
> or 'false'
> let KeyCol = ["", "-"];
>
> // Value Column has DotNewType= "new" and predsense same as KeyCol.
> // '-...
2012 Aug 28
0
[LLVMdev] TableGen backend support to express relations between instruction
Jyotsna,
I hadn't been following this, so I apologize if this has already been
provided, but can you give a quick example of how this functionality is
used?
Thanks in advance,
Hal
On Tue, 28 Aug 2012 13:01:17 -0500
"Jyotsna Verma" <jverma at codeaurora.org> wrote:
> Hi Jakob,
>
> Here is the first draft of the patch to add TableGen backend support
> for the
2012 Aug 17
0
[LLVMdev] TableGen related question for the Hexagon backend
...pping {
// Only include instructions form the PredRel class.
let FilterClass = "PredRel";
// Instructions with the same BaseOpcode field form a row.
let RowFields = ["BaseOpcode"];
// Instructions with the same predicate sense form a column.
let ColFields = ["PredSense"];
// The key column is the unpredicated instructions.
let KeyCol = ["nopred"];
// Value columns are predicate=true and predicate=false
let ValueCols = [["true"], ["false"]];
};
That should be enough to generate a table:
// key , PredSense=true, PredS...
2012 Aug 21
0
[LLVMdev] TableGen related question for the Hexagon backend
...ine Predicate New relation
> def getPredNewOpcode : InstrMapping {
> let FilterClass = "PredNewRel";
>
> let RowFields = ["BaseOpcode"];
>
> // ColFields is a list of flags/attributes of the instructions.
> let ColFields = ["DotNewType", "PredSense"];
>
> // Here 'DotNewType' of the KeyCol is "" and Predsense can be either
'true'
> or 'false'
> let KeyCol = ["", "-"];
>
> // Value Column has DotNewType= "new" and predsense same as KeyCol.
> // '-...
2012 Aug 28
4
[LLVMdev] TableGen backend support to express relations between instruction
Hi Jakob,
Here is the first draft of the patch to add TableGen backend support for the
instruction mapping tables. Please take a look and let me know your
suggestions. As of now, I create one mapping table per relation which
results into a long .inc file. So, I'm planning to combine everything into a
single table and will include APIs (one per relation) to query from this
table.
Thanks,
2012 Aug 16
2
[LLVMdev] TableGen related question for the Hexagon backend
Hi Everyone,
After some more thoughts to the Jacob's suggestion of using multiclasses for
Opcode mapping, this is what I have come up with. Please take a look at the
design below and let me know if you have any suggestions/questions.
I have tried to keep the design target independent so that other targets
could benefit from it.
1) The idea is to add 3 new classes into