Displaying 19 results from an estimated 19 matches for "reglist".
2010 Mar 19
2
[LLVMdev] Instruction with variable number of outputs
...b Stoklund Olesen wrote:
>
>> Hi,
>>
>> After Bob fixed the two-address format of the ARM ldm/stm instructions, a problem remains. The load multiple instruction looks like:
>>
>> // A list of registers separated by comma. Used by load/store multiple.
>> def reglist : Operand<i32> {
>> let PrintMethod = "printRegisterList";
>> }
>>
>> def LDM : AXI4ld<(outs), (ins addrmode4:$addr, pred:$p,
>> reglist:$dsts, variable_ops),
>> IndexModeNone, LdStMulFrm, IIC_iLoadm,
>...
2010 Mar 22
0
[LLVMdev] Instruction with variable number of outputs
...operands + variable_ops.
>>>
>>> How can you specify a named, variable list of output operands?
>>
>> Why do you need to do this? You currently can't do it.
>
> Because an instruction like LDM loads a variable number of registers. When it specifies "reglist:$dsts, variable_ops", those are really output registers, the registers being loaded.
Ah, gotcha. LDM is a particularly evil instruction to model. I agree it is best to model them as a variable number of outputs.
> I am assuming that the operands on a machine instruction are, in order: f...
2013 Jun 05
2
combining two different matrizes
...the regression.
Please ser the following code:
#Datei einlesen
residual = read.csv2("E:***Input-R_Renditen.csv",header=TRUE, sep=";")
#Aktientitel
alist <- list()
for (a in 2:11){
#Regression
? ?#L?nge Gesamtzeit
? ?t <- 243
? ?tx <- t-59
? ?#L?nge Regression
? ?reglist <- list()
? ?for (i in 1:tx){
? ?j <- i+59
? ?#RegressionsVariable
? ?x = residual[i:j,a]
? ?rm = residual[i:j,12]
? ?smb = residual[i:j,13]
? ?hml = residual[i:j,14]
? ?rf = residual[i:j,15]
? ?#?berschussrenditen
? ?ex=x-rf
? ?erm=rm-rf
? ?#Regression
? ?reg <- lm(ex~erm+smb+hml)
? ?r...
2010 Mar 19
2
[LLVMdev] Instruction with variable number of outputs
Hi,
After Bob fixed the two-address format of the ARM ldm/stm instructions, a problem remains. The load multiple instruction looks like:
// A list of registers separated by comma. Used by load/store multiple.
def reglist : Operand<i32> {
let PrintMethod = "printRegisterList";
}
def LDM : AXI4ld<(outs), (ins addrmode4:$addr, pred:$p,
reglist:$dsts, variable_ops),
IndexModeNone, LdStMulFrm, IIC_iLoadm,
"ldm${addr:submode}${p}\t$add...
2010 Mar 19
0
[LLVMdev] Instruction with variable number of outputs
...ar 19, 2010, at 7:46 AM, Jakob Stoklund Olesen wrote:
> Hi,
>
> After Bob fixed the two-address format of the ARM ldm/stm instructions, a problem remains. The load multiple instruction looks like:
>
> // A list of registers separated by comma. Used by load/store multiple.
> def reglist : Operand<i32> {
> let PrintMethod = "printRegisterList";
> }
>
> def LDM : AXI4ld<(outs), (ins addrmode4:$addr, pred:$p,
> reglist:$dsts, variable_ops),
> IndexModeNone, LdStMulFrm, IIC_iLoadm,
> &qu...
2014 Jan 19
2
[LLVMdev] Why make the register list a dag for RegisterClass in target descriptor file?
The blow snippet in target.td shows the regList in RegisterClass is typed
as dag. Why not make it a simple list, such as list<Register>?
class RegisterClass<string namespace,
list<ValueType> regTypes, int alignment, dag regList>
Thanks,
-Thomson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: &...
2018 Dec 04
2
MC Assembler / tablegen: actually parsing variable_ops
variable_ops is used in the tablegen defs for many targets to denote
instructions that a variable number of inputs, but it seems that there
aren't any targets for which this results in variable elements in the
instruction encoding (and thus in assembler parsing), since the tablegen
generated assembly matcher ($(Target)GenAsmMatcher.inc) simply assumes that
variable_ops are not to be parsed
2011 Nov 30
2
[LLVMdev] Register allocation in two passes
...rInfo::isVirtualRegister(VirtReg))
&& (VRM->getPhys(VirtReg) == REG_Y))
{
LiveInterval &LI = LIS->getInterval(VirtReg);
unassign(LI, REG_Y);
enqueue(&LI);
}
}
RegClassInfo.runOnMachineFunction(VRM->getMachineFunction()); // update
reserve reglist
So similar to what's done in LRE_WillShrinkVirtReg(), it searches for live
intervals where REG_Y is allocated and evicts them for reallocation. I
don't know if there's a faster way of doing this but it's working :)
About your first question: the register has to be reserved througho...
2015 Aug 31
2
MCRegisterClass mandatory vs preferred alignment?
On 08/31/2015 03:59 PM, Matthias Braun wrote:
> Looks to me like the alignment is specified in tablegen. From Target.td:
>
> class RegisterClass<string namespace, list<ValueType> regTypes, int alignment,
> dag regList, RegAltNameIndex idx = NoRegAltName>
>
> X86RegisterInfo.td:
>
> def VR256 : RegisterClass<"X86", [v32i8, v16i16, v8i32, v4i64, v8f32, v4f64],
> 256, (sequence "YMM%u", 0, 15)>;
> def VR256X : RegisterClass<"X86"...
2012 Oct 05
0
[LLVMdev] Distinguish variadic register defines/uses in MCInstrDesc?
...ow to handle the distinction between variadic defines and uses
and my current solution is this:
I introduce a new dag item in Instruction called VariadicOperandList, which by
default is undefined. It keeps a marker variable_* and all operands which are
placeholders for variable lists (like 'reglist' on ARM).
I think it's the cleanest solution to keep them in a seperate dag, because
else either register defines would be in the 'ins' list or the parser would
become much more complex to change the order of operands to get the variable
items in 'outs' to the end of the...
2012 Sep 26
2
[LLVMdev] Distinguish variadic register defines/uses in MCInstrDesc?
Am Mittwoch, 26. September 2012, 11:18:20 schrieb Jakob Stoklund Olesen:
> Hi Christoph,
>
> As you noticed, MCInstrDesc doesn't distinguish between variadic uses and
> defs. Since variadic instructions will always require some kind of special
> handling, it doesn't seem worthwhile to make the model more detailed.
I don't see what makes them so different from other
2015 Aug 31
3
MCRegisterClass mandatory vs preferred alignment?
Looking around today, it appears that TargetRegisterClass and
MCRegisterClass only includes a single alignment. This is documented as
being the minimum legal alignment, but it appears to often be greater
than this in practice. For instance, on x86 the alignment of %ymm0 is
listed as 32, not 1. Does anyone know why this is?
Additionally, where are these alignments actually defined? I
2009 Nov 13
2
linear model and by()
Hello R list,
This is a question for anyone who has used the by() command. I would like to
perform a regression on a data frame by several factors. Using by() I think
that I have able to perform this using the following:
> lm.r <- by(master, list(Sectionf=Sectionf, startd=startd), function(x) lm
(tot.c ~ starttime, data = x))
So that is, I would like to perform separate regressions for
2011 Nov 30
0
[LLVMdev] Register allocation in two passes
...&& (VRM->getPhys(VirtReg) == REG_Y))
> {
> LiveInterval &LI = LIS->getInterval(VirtReg);
> unassign(LI, REG_Y);
> enqueue(&LI);
> }
> }
> RegClassInfo.runOnMachineFunction(VRM->getMachineFunction()); // update reserve reglist
>
> So similar to what's done in LRE_WillShrinkVirtReg(), it searches for live intervals where REG_Y is allocated and evicts them for reallocation. I don't know if there's a faster way of doing this but it's working :)
Looks good.
It is probably faster to scan the LiveInter...
2014 Jan 19
0
[LLVMdev] Why make the register list a dag for RegisterClass in target descriptor file?
On 19 January 2014 10:19, Thomson <lilotom at gmail.com> wrote:
> The blow snippet in target.td shows the regList in RegisterClass is typed as
> dag. Why not make it a simple list, such as list<Register>?
I don't know about the original reason, but these days we have a few
operators in use to make constructing those sets easier which would be
much harder to do for lists. E.g. "(sequence &quo...
2011 Nov 29
0
[LLVMdev] Register allocation in two passes
On Nov 29, 2011, at 10:24 AM, Borja Ferrer wrote:
> Yes, I want the register to be allocatable when there are no stack frames used in the function so it can be used for other purposes. In fact, I looked at how other backends solve this problem, but they are all too conservative by always reserving the register which in my case it is not a good solution because of the performance impact of not
2011 Nov 29
2
[LLVMdev] Register allocation in two passes
Yes, I want the register to be allocatable when there are no stack frames
used in the function so it can be used for other purposes. In fact, I
looked at how other backends solve this problem, but they are all too
conservative by always reserving the register which in my case it is not a
good solution because of the performance impact of not having this register
available.
I find very interesting
2014 Feb 06
13
[Bug 74613] New: [v3.14-rc1] [nv34] nouveau: get 0x10000000 put 0x0000ed30 state 0xc0000000 (err: MEM_FAULT) push 0x00000000
...1e19 drm/nvc0-/gr: handle fwmthd interrupts in ucode
e1b22bc drm/nvc0-/gr: fiddle some magic around strand init
96616b4 drm/nv108/gr: initial support (need external fuc)
daa9ab5 drm/nv108/ce: enable copy engines
a763951 drm/nv108/fifo: initial support
a0f95f1 drm/nvf0/gr: remove a copy+pasto in ctx reglist
67af60f drm/nvc0-/gr: bring in some macros to abstract falcon isa differences
90d6db1 drm/nouveau/falcon: use vmalloc to create firwmare copies
d96bf43 drm/nouveau/gem: remove (now) unneeded pre-validate fence sync
cef9e99 drm/nouveau/ttm: explicitly wait for bo idle before memcpy buffer move
35b81...
2010 Jun 21
2
[LLVMdev] MC: Object file specific parsing
...oken::Identifier))
return Error(RegLoc, "register expected");
int RegNum = MatchRegisterName(RegTok.getString());
if (RegNum == -1)
return Error(RegLoc, "register expected");
- Parser.Lex(); // Eat identifier token.
+ Lex(); // Eat identifier token.
unsigned RegList = 1 << RegNum;
int HighRegNum = RegNum;
// TODO ranges like "{Rn-Rm}"
- while (Parser.getTok().is(AsmToken::Comma)) {
- Parser.Lex(); // Eat comma token.
+ while (getTok().is(AsmToken::Comma)) {
+ Lex(); // Eat comma token.
- const AsmToken &RegTok = Parser....