Displaying 20 results from an estimated 400 matches similar to: "New to LLVM. Need help getting available register"
2019 Feb 17
2
New to LLVM. Need help getting available register
Is it possible to get a virtual register and then use that to create a real register? I've seen it done in unittests/CodeGen/MachineInstrTest.cpp like this:
unsigned VirtualDef1 = -42;
VD1VU->addOperand(*MF,
MachineOperand::CreateReg(VirtualDef1, /*isDef*/ true));
But when I do that in my code I get an assertion so I wasn't sure if it's legal or not.
Thanks.
2011 Oct 07
3
[LLVMdev] VirtRegRewriter.cpp: LocalRewriter::ProcessUses()
Hi,
I think I've found a bug in this method.
I ran it on an MI which already had two implicit-use operands, and which defined a register with a subregindex, ie reg::lo16.
For the def-operand, with a subregindex, an implicit-use operand was added with this code:
VirtUseOps.insert(VirtUseOps.begin(), MI.getNumOperands());
MI.addOperand(MachineOperand::CreateReg(VirtReg,
2011 Oct 12
0
[LLVMdev] VirtRegRewriter.cpp: LocalRewriter::ProcessUses()
On Oct 7, 2011, at 8:14 AM, Jonas Paulsson wrote:
> Hi,
>
> I think I've found a bug in this method.
>
> I ran it on an MI which already had two implicit-use operands, and which defined a register with a subregindex, ie reg::lo16.
>
> For the def-operand, with a subregindex, an implicit-use operand was added with this code:
>
>
2016 May 21
1
Using an MCStreamer Directly to produce an object file?
llvm-dev,
Thanks so much in advance for any help, tips, or advice you may be able
to offer me. I'm going to try to avoid the big-picture description of
the project I'm working on, and only talk about the parts that I have
trouble with / currently need to implement. -- I've been starting by
taking the source code from the "llvm-mc" tool, and working that down
into a
2010 Jan 15
2
[LLVMdev] <IsKill> getting from MachineOperand is just <Used> attribute from logic.
Hi,
I have ported LLC to a risc cpu. It can pass benchmark that I have at current.
But I want do some optimization after register alloction by adjusting
register using. I scan MachineBasicBlock to analyze operand's IsKill, IsDead , IsDef attribute to get a physical register's liverange. But I get a strange case at MBB.jpg.
R4 is marked <kill> at MBB0. If I scan R4's
2008 Jan 27
0
[LLVMdev] BreakCriticalMachineEdge.h
Fernando,
The code there should be more or less functional, though it's not
currently used by anything. Eventually it should probably be moved to
a method on MachineBasicBlock.
The API breakage you're seeing is because some methods moved around.
Feel free to fix it. :-)
--Owen
On Jan 26, 2008, at 6:31 PM, Fernando Magno Quintao Pereira wrote:
>
> Hi LLVMers,
>
>
2008 Jan 27
2
[LLVMdev] BreakCriticalMachineEdge.h
Hi LLVMers,
what is the status of breaking critical edges in machine functions? I
just compiled the top of the LLVM tree, and I found
llvm/CodeGen/BreakCriticalMachineEdge.h. But this file seems not to be
up-to-date with the other classes in the top of the tree. For instance, it
calls isTerminatorInstr on llvm::TargetInstrInfo, but this method is no
longer there.
If I want to break
2010 Jan 15
0
[LLVMdev] <IsKill> getting from MachineOperand is just <Used> attribute from logic.
On Jan 14, 2010, at 6:39 PM, 任坤 wrote:
> But I want do some optimization after register alloction by adjusting
> register using. I scan MachineBasicBlock to analyze operand's IsKill, IsDead , IsDef attribute to get a physical register's liverange. But I get a strange case at MBB.jpg.
You can also look at RegisterScavenging.cpp and MachineVerifier.cpp. They are doing the same
2011 Oct 13
1
[LLVMdev] VirtRegRewriter.cpp: LocalRewriter::ProcessUses()
Yes, I'm saying that the implicit-def operand that was added in this case ended up as #4, out of 6, when the operands list was reallocated in addOperand().
If addOperand was rewritten, I think it's best not to add my fix for ProcessUses(), as I wrote earlier.
Jonas
Subject: Re: [LLVMdev] VirtRegRewriter.cpp: LocalRewriter::ProcessUses()
From: stoklund at 2pi.dk
Date: Wed, 12 Oct 2011
2010 Feb 26
2
[LLVMdev] RegisterScavenging on targets without subregisters
There's an assert at line 192, lib/CodeGen/RegisterScavenging.cpp that
appears to get tripped on targets that don't have subregisters defined:
bool SubUsed = false;
for (const unsigned *SubRegs = TRI->getSubRegisters(Reg);
unsigned SubReg = *SubRegs; ++SubRegs)
if (isUsed(SubReg)) {
SubUsed = true;
break;
}
2017 Jan 19
2
Spare Register at one Machine Instruction
Hi All,
Given a machine instruction, is it possible to tell which register(s) is
still not in use?
For example, given one instruction A, if the one follows it (say B) defines
register rax, then I can tell rax should spare at instruction A.
The purpose is to use the spare register to replace registers used by A,
for instrumentation purpose.
Regards,
Hu Hong
-------------- next part
2017 Jan 19
2
Spare Register at one Machine Instruction
There is also the LivePhysReg facility that I would recomment if you just want to query for a free register and do not need the full feature set of the RegisterScavenger.
- Matthias
> On Jan 19, 2017, at 5:50 AM, Nemanja Ivanovic via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> I believe what you're after is the register scavenger.
> It's in:
2017 Jan 21
3
Spare Register at one Machine Instruction
I'm not sure exactly what you're after.
I was under the impression that you want to know which register is live at
a specific point (an instruction). If that's the case, how do one of the
two suggested solutions not suffice?
If a register is live-in to a block and not killed before your instruction
or it has a def and no kill within the block, it is live. Otherwise it is
dead and
2010 Feb 26
0
[LLVMdev] RegisterScavenging on targets without subregisters
Ugh. Management lobotomy kicked in. Need to RTFC better.
On Thu, Feb 25, 2010 at 6:18 PM, Scott Michel <scooter.phd at gmail.com> wrote:
> There's an assert at line 192, lib/CodeGen/RegisterScavenging.cpp that
> appears to get tripped on targets that don't have subregisters defined:
>
> bool SubUsed = false;
> for (const unsigned *SubRegs =
2010 Feb 26
2
[LLVMdev] RegisterScavenging on targets without subregisters
No, I wasn't having a management lobotomy moment. If the target's registers
have no subregisters, SubUsed is false and the assert gets tripped.
Ok, back to the original question: What was the original intent in this code
(lines 186-193 in lib/CodeGen/RegisterScavenging.cpp)?
-scooter
On Thu, Feb 25, 2010 at 7:00 PM, Scott Michel <scooter.phd at gmail.com> wrote:
> Ugh.
2010 Feb 26
0
[LLVMdev] RegisterScavenging on targets without subregisters
Scott Michel skrev:
> No, I wasn't having a management lobotomy moment. If the target's registers have
> no subregisters, SubUsed is false and the assert gets tripped.
>
> Ok, back to the original question: What was the original intent in this code
> (lines 186-193 in lib/CodeGen/RegisterScavenging.cpp)?
You beat me to it :). A simple bypass (patch attached) does at
2014 Oct 10
2
[LLVMdev] eliminateFrameIndex
Hi!
I started writing a LLVM backend for a custom architecture. I have some register and instruction .td files and some other files/classes like a MCStreamer for assembler output. At the moment I can compile some empty programs so far.
I implemented the method ::eliminateFrameIndex() similar to the Sparc and ARM backend. The method looks like this:
// frame pointer is in reg of class
2014 Apr 08
2
[LLVMdev] 3.4.1 Release Plans
On Tue, Apr 08, 2014 at 04:08:13PM +0400, Robert Khasanov wrote:
> Hi Reid,
>
> Would you approve your patches r203146 and r202774 to be backported to
> 3.4.1? They fix stability issues in x86 asm.
>
Hi Robert,
I was able to merge r203146, but it used a c++11 feature:
std::string::back() which I replaced with
std::string::at(std::string::size() - 1).
r202774 was not merged,
2010 Nov 29
2
[LLVMdev] Question About Target Dependent Optimization
My name is Isaac. I'm a student at Cal Poly State University, San Luis
Obispo, and I'm currently finishing my thesis on target-specific code
optimization for my master's degree. I was wondering if I could ask a few
questions I have about working with the LLVM codebase.
My thesis involves optimizing the way that LLVM deals with memory operations
when targeting the ARM processor
2010 Aug 04
1
[LLVMdev] llc instability when generating ARM code - contractor desired
Hello llvm'ers,
We are using the llvm compiler tools (llvm-link, llc, etc) to generate code for ARM for the Android NDK. We're on a pretty tight deadline and have a host of issues that we could use some help overcoming. We're interested in bringing on a contractor experienced in llvm to help us. Broadly, llc is giving various assertion failures while generating the native code