similar to: [LLVMdev] Post Register-Allocation Instruction Scheduling and Instruction Encodings

Displaying 20 results from an estimated 30000 matches similar to: "[LLVMdev] Post Register-Allocation Instruction Scheduling and Instruction Encodings"

2013 May 30
0
[LLVMdev] Activating MIPS Code Emitter.
On May 30, 2013, at 11:35 AM, Jafar J <pluck90 at hotmail.com> wrote: > Hi Jim, > > The idea of reducing the switching activity between the instructions works by reducing the hamming distance between tow consecutive binary strings across the basic block, or reducing the number of the different bits between two consecutive instructions. This is why I need the exact complete
2013 May 30
2
[LLVMdev] Activating MIPS Code Emitter.
Hi Jim, The idea of reducing the switching activity between the instructions works by reducing the hamming distance between tow consecutive binary strings across the basic block, or reducing the number of the different bits between two consecutive instructions. This is why I need the exact complete encoding in plain 0’s and 1’s, to be as precise as possible during the scheduling process. I did
2013 May 30
0
[LLVMdev] Activating MIPS Code Emitter.
Hi Jafar, That’s not quite what I meant. Why do you need to know the exact encoding at all? The instruction opcode+operands should have all the semantic information you need without ever looking at the actual encoding. -Jim On May 30, 2013, at 11:08 AM, Jafar J <pluck90 at hotmail.com> wrote: > Yes your absolutely right, the Opcode and the Operands in each machine instruction are
2013 May 30
2
[LLVMdev] Activating MIPS Code Emitter.
Yes your absolutely right, the Opcode and the Operands in each machine instruction are sufficient to generate the final binary representation of the MachineInstruction but not exactly. If you take a look at the format of each MIPS instruction, you’ll see that there are some fixed bits for each instruction which are not available inside the machine instruction object –From what I saw so far-.
2013 May 30
0
[LLVMdev] Activating MIPS Code Emitter.
Thanks, that helps. The code emitter is definitely not the way you want to go about solving this problem, though. Are the instruction opcode (MachineInstr::getOpcode()) and the operand values not sufficient? All the information present in the encoding should be inferable from those, as that’s where the encoding comes from. -Jim On May 30, 2013, at 10:12 AM, Jafar J <pluck90 at
2013 May 30
2
[LLVMdev] Activating MIPS Code Emitter.
I need to represent each instruction with its (32-bit) binary encoding, and I reached to a conclusion that I could get the encoding through the MipsCodeEmitter. What I’m trying to do exactly is write a scheduler which tries to minimize the switching activity between the scheduled instructions in each basic block. One way to do that is by representing each instruction with its complete binary
2013 May 30
0
[LLVMdev] Activating MIPS Code Emitter.
What are you actually trying to do? The code emitters have nothing to do with the post-RA scheduler. -Jim On May 30, 2013, at 6:23 AM, Jafar J <pluck90 at hotmail.com> wrote: > Hello, > > Is it possible to activate the MIPS code emitter during Post-RA scheduler. I tried including both MipsCodeEmitter.cpp and JITCodeEmitter.h to PostRASchedulerList.cpp, but when I rebuild
2013 May 30
2
[LLVMdev] Activating MIPS Code Emitter.
Hello, Is it possible to activate the MIPS code emitter during Post-RA scheduler. I tried including both MipsCodeEmitter.cpp and JITCodeEmitter.h to PostRASchedulerList.cpp, but when I rebuild the compiler I get an error that says “/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h fatal error: MipsGenRegisterInfo.inc file not found”. I’m assuming that the MipsGenRegisterInfo.inc is not yet
2010 Feb 04
2
[LLVMdev] Integrated instruction scheduling/register allocation
A more pressing need is a pre-regalloc scheduler that can switch modes to balance reducing latency vs. reducing register pressure. The problem is the current approach is the scheduler is locked into one mode or the other. For x86, it generally makes sense to schedule for low register pressure. That is, until you are dealing with a block that are explicitly SSE code in 64-bit mode. In that case,
2010 Feb 05
0
[LLVMdev] Integrated instruction scheduling/register allocation
On Thu, Feb 04, 2010 at 13:59:08 -0800, Evan Cheng wrote: > A more pressing need is a pre-regalloc scheduler that can switch modes to > balance reducing latency vs. reducing register pressure. Right. I'm actually working on implementing a variant of IPS (Goodman and Hsu, Code scheduling and register allocation in large basic blocks, http://doi.acm.org/10.1145/55364.55407) based on the
2010 Feb 06
1
[LLVMdev] Integrated instruction scheduling/register allocation
On Feb 5, 2010, at 2:01 AM, Gergö Barany wrote: > On Thu, Feb 04, 2010 at 13:59:08 -0800, Evan Cheng wrote: >> A more pressing need is a pre-regalloc scheduler that can switch modes to >> balance reducing latency vs. reducing register pressure. > > Right. I'm actually working on implementing a variant of IPS (Goodman and > Hsu, Code scheduling and register allocation
2010 Feb 03
0
[LLVMdev] Integrated instruction scheduling/register allocation
On Feb 3, 2010, at 6:00 AM, Gergö Barany wrote: > I independently arrived at the same crazy idea :-) and I'm wondering if > anybody ever went and actually implemented a rescheduling allocator in LLVM. > I've done some poking around the web, the mailing list archives and the LLVM > source code, but I haven't found anything suggesting that this has been > done. If anyone
2010 Feb 03
2
[LLVMdev] Integrated instruction scheduling/register allocation
Hi everyone, I'm in the formative stage of my PhD studies. My current focus is on integrated approaches to instruction scheduling and register allocation. A colleague pointed me to Evan Cheng's talk at the August 2008 developer meeting [1], where he very briefly mentioned allowing the register allocator to reschedule instructions as a "crazy idea" for the future. I
2012 Aug 18
1
[LLVMdev] MIPS Register Pressure Limit.
Hello, why LLVM does not define physical register limits for MIPS by overriding the TargetRegisterInfo::getRegPressureLimit function the way it’s done for X86 in x86RegisterInfo.cpp and ARM. Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120818/a8e4f353/attachment.html>
2015 Dec 16
2
Instruction scheduling done before or after register allocation
Hi, I have read the steps of code generation from here: The LLVM Target-Independent Code Generator — LLVM 3.8 documentation |   | |   | |   |   |   |   |   | | The LLVM Target-Independent Code Generator — LLVM 3...Instruction Selection Instruction Selection is the process of translating LLVM code presented to thecode generator into target-specific machine instructions. | | | | View on llvm.org
2013 Jan 22
0
[LLVMdev] LLVM-GCC and eclipse
Hello, I know that this question is off-topic for the llvm mailing list but I did a lot o search to find an answer, posted questions on other sites and it’s still now working so I decided to post my question here. So, I would really appreciate the help. I’m using llvm-gcc 4.2-2.9 front-end with llvm 2.9 back-end. For about seven months now I’ve been doing the development using text viewers,
2012 Apr 25
0
[LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
Sorry, I meant to say, I added code to prevent llc from running machine verifier after delay slots are filled. MipsInstrInfo::AnalyzeBranch generates incorrect results after delay slots are filled. Also, it seems that code in MachineVerifier.cpp wasn't written with architectures that have delay slots in mind. On Wed, Apr 25, 2012 at 11:59 AM, Akira Hatanaka <ahatanak at gmail.com>
2012 Apr 25
2
[LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
Hi Anton, I ran llc with -verify-coalescing. There were no error messages. Then I added code in MipsPassConfig::addPreEmitPass() to prevent machine verifier from running post delay -slot-filler, and ran llc again. Again, there were no error messages. This is the list of passes run after post-RA scheduling. machine verifier is run twice after post RA scheduler (and CriticalAntiDepBreaker) is run.
2011 Aug 16
2
[LLVMdev] Register Pressure Computation during Pre-Allocation Scheduling
Thank you for the answers, Jakob! That's really informative for someone who is still new to LLVM like me. Please see my responses below. -Ghassan  ________________________________ From: Jakob Stoklund Olesen <stoklund at 2pi.dk> To: Ghassan Shobaki <ghassan_shobaki at yahoo.com> Cc: "llvmdev at cs.uiuc.edu" <llvmdev at cs.uiuc.edu> Sent: Tuesday, August 16,
2013 Jan 24
0
[LLVMdev] Order of optimization: modulo scheduling & register allocation
On Jan 23, 2013, at 3:45 PM, ryan baird <ryanrbaird at gmail.com> wrote: > I was reading about the order of optimizations in the code generation stage here: http://llvm.org/docs/CodeGenerator.html#the-high-level-design-of-the-code-generator > > This is the part that's interesting to me: > > 3. SSA-based Machine Code Optimizations — This optional stage consists of a