similar to: [LLVMdev] Question about TableGen when adding LLVM Backend.

Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Question about TableGen when adding LLVM Backend."

2011 Mar 09
0
[LLVMdev] Question about TableGen when adding LLVM Backend.
On Mar 9, 2011, at 2:13 PM, Lu Mitnick wrote: > Hello all, > > I have some question about usage of TableGen when adding a new LLVM Backend. There are three place to use TableGen in basic steps of document "Writing an LLVM Compiler > Backend": > > 2. Describe the register set of the target. Use "TableGen" to generate code for register definition, register
2011 Mar 10
2
[LLVMdev] Question about TableGen when adding LLVM Backend.
Hello Jakob, Is this means that TableGen execution is handled in Makefile. Porting programmer doesn't need to execute TableGen by hand? thanks 2011/3/10 Jakob Stoklund Olesen <stoklund at 2pi.dk> > > On Mar 9, 2011, at 2:13 PM, Lu Mitnick wrote: > > > Hello all, > > > > I have some question about usage of TableGen when adding a new LLVM > Backend. There
2014 Aug 05
2
[LLVMdev] Concerning not relevant argument count in TableGen Patterns.
Dear all. I have a problem with the following situation: I want to handle an intrinsic function in a specific way. The prototype of my function is: "/int my_intrinsic_name()/" So I want to generate a move instruction which should use two register type operands: "/mov R1, R2/" For this purpose I assume that the instruction definition in the TargetInstrInfo.td file
2011 Jan 22
3
[LLVMdev] Question about porting LLVM - code selection without assembler feature
Hello all, I am adding a new target into LLVM. However there is a assembler for that target and I just want LLVM to generate assembly. I read the document "Writing an LLVM Backend". I am wondering to know whether I can ignore the Inst field in the following example: class InstSP<dag outs, dag ins, string asmstr, list<dag> pattern> : Instruction { field bits<32>
2018 Apr 15
1
increment in tablegen
i have loop index I. I want to increment it by 1. How to do this in registerinfo.td. I m trying following but getting error. let SubRegIndices = [sub_32bit, sub_32bit_hi], CoveredBySubRegs = 1 in { foreach I = 0-255 in { m=add(I,1); def R_#J#_REG64b_#I : R_P<"R_"#J#"_R64b_"#I, !shl(I,2), [!cast<R_P>("R_"#J#"_REG32b_"#I),
2011 Mar 10
0
[LLVMdev] Question about TableGen when adding LLVM Backend.
On Mar 9, 2011, at 8:15 PM, Lu Mitnick wrote: > Hello Jakob, > > Is this means that TableGen execution is handled in Makefile. Porting programmer doesn't need to execute TableGen by hand? That's right. You are going to be editing your .td files a lot, so you want that integrated in the build system.
2011 Mar 13
3
[LLVMdev] Question about TableGen when adding LLVM Backend.
Am 10.03.2011 um 05:35 schrieb Jakob Stoklund Olesen: > On Mar 9, 2011, at 8:15 PM, Lu Mitnick wrote: > >> Hello Jakob, >> >> Is this means that TableGen execution is handled in Makefile. >> Porting programmer doesn't need to execute TableGen by hand? > > That's right. > > You are going to be editing your .td files a lot, so you want that >
2011 Jan 24
0
[LLVMdev] Question about porting LLVM - code selection without assembler feature
Lu Mitnick <king19880326 at gmail.com> writes: > Hello all, > > I am adding a new target into LLVM. However there is a assembler for > that target and I just want LLVM to generate assembly. I read the > document "Writing an LLVM Backend". I am wondering to know whether I > can ignore the Inst field in the following example: I'm not an expert here so I'll
2012 May 07
4
[LLVMdev] Discussion of eliminating the void type
Hello all, I am willing to do "eliminating the void type" project. Is there anyone working on it? === Overview === The general concept is to replaced void with {}. And 'ret void' is a synonym of 'ret {} {}.' === Further Implementation Details === 1. Deleting VoidTyID 2. Deleting LLVMVoidTypeKind (one-to-one relation between VoidTyID and LLVMVoidTypeKind) 3. Use
2008 Sep 16
0
[LLVMdev] TableGen Calling Convention help
On Mon, Sep 15, 2008 at 4:51 PM, Villmow, Micah <Micah.Villmow at amd.com> wrote: > With my backend code gen I want to assign calling parameters to a list of > registers, but since I'm targeting a virtual instruction set. I don't want > to be limited by the number of registers. Is there a way using TableGen to > specify just a starting register to assign to for the
2012 Oct 08
4
[LLVMdev] "Multithreaded LLVM" in "Writing an LLVM Pass"
Hello all, I have read the chapter "Writing an LLVM Pass" and noticed that there is a topic "Multithreaded LLVM". However I have no idea about this. I am wondering to know whether the goal of this extension is: 1. Multiple threads handle different modules (Thread : Module = 1 : 1) or 2. Multiple threads handle one module (Thread : Module = N : 1) Thanks a lot --------------
2016 Aug 22
4
How to describe the RegisterInfo?
Hello Everyone, I am trying to make a new LLVM backend target for Intel GPU. I would start from targeting OpenCL language first. But I am not quite familiar with LLVM backend infrastructure. I have some problem on describing the RegisterInfo. Intel GPU launches lots of hardware threads to do GPGPU workload. Each hardware thread has 128 registers(r0-r127), with each one of size 32 byte. Each
2016 Oct 28
2
mischeduler
Hi, Regarding the mischeduler, I wonder // For loops that are acyclic path limited, aggressively schedule for // latency. This can result in very long dependence chains scheduled in // sequence, so once every cycle (when CurrMOps == 0), switch to normal // heuristics. if (Rem.IsAcyclicLatencyLimited && !Zone->getCurrMOps() && tryLatency(TryCand, Cand, *Zone))
2008 Sep 15
2
[LLVMdev] TableGen Calling Convention help
With my backend code gen I want to assign calling parameters to a list of registers, but since I'm targeting a virtual instruction set. I don't want to be limited by the number of registers. Is there a way using TableGen to specify just a starting register to assign to for the CallingConv class and then have it just use sequential registers? Micah Villmow Systems Engineer Advanced
2017 Jul 19
5
error:Ran out of lanemask bits to represent subregisterr
I have made changes in 3 files: LaneBitmask.h, codegenregisters.cpp and miparser.cpp. files are attached here. Now i am getting following errors. which means registerinfo.inc file is not generated successfully. /PIM/lib/Target/X86/MCTargetDesc/X86BaseInfo.h:733:24: error: no member named 'XMM8' in namespace 'llvm::X86' if ((RegNo >= X86::XMM8 && RegNo <=
2017 Jul 20
2
error:Ran out of lanemask bits to represent subregisterr
Hello Krzysztof, The R_CASS definition is as follows: class R_CASS<string n, bits<16> Enc, list<Register> subregs = []> : Register<n> { let Namespace = "X86"; let HWEncoding = Enc; let SubRegs = subregs; } On Thu, Jul 20, 2017 at 4:14 AM, Krzysztof Parzyszek < kparzysz at codeaurora.org> wrote: > I tried reproducing the problem, but the file
2016 Mar 15
2
GSoC Proposal : Path Profiling Support
This proposal adds support for path profiling [Ball96] to LLVM. Path profiling compactly represents acyclic paths in a directed acyclic graph representation of the control flow graph of a routine. Instrumentation can be added to uniquely identify paths executed at runtime. Path profiles enable precise enumeration of the sequence of basic blocks executed in order for a particular path. Using path
2018 Jul 10
2
Stuck with instruction in tablegen
Hi, I'm trying to revive jacobly0's Z80 back-end (from https://github.com/jacobly0/llvm-z80) and build it with a current version of LLVM. Apart from some interface changes, I'm stuck at building the tables. Specifically, the generation of the DAG instruction selector causes an assertion in the table generator: Assertion failed: Ops.size() >= NumSrcResults &&
2012 May 07
0
[LLVMdev] Discussion of eliminating the void type
Hi Mitnick, > === Overview === > > The general concept is to replaced void with {}. And 'ret void' is a synonym of > 'ret {} {}.' in a sense the concept is just to delete void and not to replace it with anything in particular. Of course front-ends (clang, dragonegg) need to produce something instead of void, and {} is an example of what they might produce, but they
2012 Apr 21
2
[LLVMdev] Eliminating the 'void' type
Hello all, I noticed Eliminating the 'void' type<http://nondot.org/sabre/LLVMNotes/EliminatingVoid.txt>in Random LLVM notes. I am wondering to know what's the meaning of "eliminating" the void type. Is it means the goal is deleting VoidTyID from TypeID enumeration in Type.h? And what Type::getVoidTy() returned is a pointer to a {}? Thanks Mitnick -------------- next