search for: liveregmatrix

Displaying 18 results from an estimated 18 matches for "liveregmatrix".

2013 Sep 17
2
[LLVMdev] Doubts about register interferences in register allocators
...must me mapped to some register of a class Z AND there's an interception between the ranges of X and ranges of Y", that's something like "X overlaps Y, which are the same type". This deffinition differs from the definition I've found reading the source code. In the class LiveRegMatrix, which is queried to check interferences you ask something "does virtual register X interfere in physical register Y?". But I realized the answer is yes only if register Y has been already assigned to another virtual register. I confess I couldn't understand why it was implemented in...
2013 Sep 17
0
[LLVMdev] Doubts about register interferences in register allocators
...ped to some register of a class Z AND there's an interception between the ranges of X and ranges of Y", that's something like "X overlaps Y, which are the same type". > > This deffinition differs from the definition I've found reading the source code. In the class LiveRegMatrix, which is queried to check interferences you ask something "does virtual register X interfere in physical register Y?". But I realized the answer is yes only if register Y has been already assigned to another virtual register. > > I confess I couldn't understand why it was impl...
2015 Nov 19
2
Build a Interference Graph
...L1->overlaps(RG1) Where L1 is a Live Interval and RG1 is a RegUnit for an arbitrary physical register. I saw this second method in the PBQP allocator code, I think that maybe will be related to avoid allocation to reserved physical registers or for a on-the-fly check for interference, but the LiveRegMatrix already do that. So my question is: Considering that I will build this interference graph before any assignment (with information only about the Liveness Analisys) and I freeze all reserved physical registers before perform register allocation, should I use the first or the second method? If the s...
2015 Nov 19
2
Build a Interference Graph
...a Live Interval and RG1 is a RegUnit for an arbitrary > physical register. > > > > I saw this second method in the PBQP allocator code, I think that maybe > will be related to avoid allocation to reserved physical registers or for a > on-the-fly check for interference, but the LiveRegMatrix already do that. > > > > So my question is: Considering that I will build this interference graph > before any assignment (with information only about the Liveness Analisys) > and I freeze all reserved physical registers before perform register > allocation, should I use the fi...
2015 Sep 01
2
Spilling Virtual Registers
...f the algorithm, some movements are applied to this solution in order to find a better solution. To apply such movements, I need to unassign a virtual register from a physical register and one from the memory, and swap those two. To unassign from a physical register, the method *unassign* from the *LiveRegMatrix* class can be used. But, in the other hand, the class *InlineSpiller* doesn't provide a similar method, like *unspill*. So I thought, instead of applying the spill directly during the first phase of the algorithm, I would store the virtual registers candidates to spill in an auxiliary structur...
2012 Jun 10
0
[LLVMdev] anti-dependency breaking and mask/shift dependencies
...anti-dep breaker to leave that instruction alone while still being able to break other anti-dependencies on condition code registers. If that is not enough, you will very soon be able to inject a target-dependent pass between register allocation and virtual register rewriting. You can use the new LiveRegMatrix interface to change the virtual register assignments, for example to loosen anti-dependencies. I expect to have this ready within the next week. /jakob
2015 Jan 17
3
[LLVMdev] loop multiversioning
...ne-sink -peephole-opts -dead-mi-elimination -processimpdefs -unreachable-mbb-elimination -livevars -machinedomtree -machine-loops -phi-node-elimination -twoaddressinstruction -slotindexes -liveintervals -simple-register-coalescing -misched -machine-block-freq -livedebugvars -livestacks -virtregmap -liveregmatrix -edge-bundles -spill-code-placement -virtregrewriter -stack-slot-coloring -machinelicm -edge-bundles -prologepilog -machine-block-freq -branch-folder -tailduplication -machine-cp -postrapseudos -machinedomtree -machine-loops -post-RA-sched -gc-analysis -machine-block-freq -block-placement2 -stackma...
2012 Jun 10
2
[LLVMdev] anti-dependency breaking and mask/shift dependencies
On PowerPC (at least versions which predate the mfocrf instruction), while there are multiple independent condition registers, the only way to move those registers into a general-purpose register is to use mfcr, which transfers all of the (concatenated) condition registers into one general purpose register, followed by a mask/shift operation to extract the desired pieces. I would like to know if
2015 May 20
2
[LLVMdev] Implement a Register Allocator in LLVM
I'm working on my project for completion undergraduate courses, consisting of an experimental analysis of registers allocation algorithms. For this task, I am using the set of tools from the LLVM project. However, I have read the documentation of the LLVM project and not yet found a way to put the pieces of the puzzle together. So far I know: - As passes work as engage them to LLVM and
2020 Jul 02
2
flags to reproduce clang -O3 with opt -O3
...eak-false-deps -callsite-splitting-ipsccp -codegenprepare -consthoist -dead-mi-elimination -detect-dead-lanes -early-ifcvt -early-machinelicm -early-tailduplication -expandmemcmp -greedy -interleaved-access -iv-users -lazy-block-freq-opt-remark-emitter -livedebugvars -liveintervals -liveregmatrix -livestacks -livevars -loop-reduce -loop-simplify-lcssa-verification -lrshrink -machine-block-freq -machine-combiner -machine-cp -machine-cse -machinedomtree-machine-loops -machinelicm -machine-loops -machinepostdomtree -machinepostdomtree-block-placement -machine-scheduler -machine...
2020 Jul 03
2
flags to reproduce clang -O3 with opt -O3
...> >> -early-tailduplication >> >> -expandmemcmp >> >> -greedy >> >> -interleaved-access >> >> -iv-users >> >> -lazy-block-freq-opt-remark-emitter >> >> -livedebugvars >> >> -liveintervals >> >> -liveregmatrix >> >> -livestacks >> >> -livevars >> >> -loop-reduce >> >> -loop-simplify-lcssa-verification >> >> -lrshrink >> >> -machine-block-freq >> >> -machine-combiner >> >> -machine-cp >> >> -machine...
2016 May 28
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...ses library function ( for a library function register allocation is not done by LLVM so this optimization will simply skip them) Study and Other: ============= I have learned following things in LLVM, how it stores reg clobbering information? how it is used by Reg allocators through LivePhysRegs, LiveRegMatrix and other related passes? How to schedule a pass using TargetPassConfig and TargetMachine? What are called callee saved registers? What is an Immutable Pass? Apart from that I have also learned how to use phabricator to send review request. I have also read some related literatures. During this we...
2012 Jun 11
2
[LLVMdev] anti-dependency breaking and mask/shift dependencies
...ould set this attribute on a special form of the comparison instruction, and that would be a work-around for now. > > If that is not enough, you will very soon be able to inject a > target-dependent pass between register allocation and virtual > register rewriting. You can use the new LiveRegMatrix interface to > change the virtual register assignments, for example to loosen > anti-dependencies. I expect to have this ready within the next week. > Sounds good; let's talk about this when it is ready. Also, I think the following might work well: If we add a special kind of regis...
2016 Jun 12
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...ion is not done by LLVM so this optimization will simply >> skip them) >> >> Study and Other: >> ============= >> I have learned following things in LLVM, how it stores reg clobbering >> information? how it is used by Reg allocators through LivePhysRegs, >> LiveRegMatrix and other related passes? How to schedule a pass using >> TargetPassConfig and TargetMachine? What are called callee saved registers? >> What is an Immutable Pass? Apart from that I have also learned how to use >> phabricator to send review request. I have also read some related &...
2016 Jun 15
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...his optimization will simply >>> skip them) >>> >>> Study and Other: >>> ============= >>> I have learned following things in LLVM, how it stores reg clobbering >>> information? how it is used by Reg allocators through LivePhysRegs, >>> LiveRegMatrix and other related passes? How to schedule a pass using >>> TargetPassConfig and TargetMachine? What are called callee saved registers? >>> What is an Immutable Pass? Apart from that I have also learned how to use >>> phabricator to send review request. I have also read so...
2016 Jun 19
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...hem) >>>>> >>>>> Study and Other: >>>>> ============= >>>>> I have learned following things in LLVM, how it stores reg clobbering >>>>> information? how it is used by Reg allocators through LivePhysRegs, >>>>> LiveRegMatrix and other related passes? How to schedule a pass using >>>>> TargetPassConfig and TargetMachine? What are called callee saved registers? >>>>> What is an Immutable Pass? Apart from that I have also learned how to use >>>>> phabricator to send review requ...
2016 Jun 20
2
[GSoC 2016] [Weekly Status] Interprocedural Register Allocation
...t;>>> Study and Other: >>>>>>> ============= >>>>>>> I have learned following things in LLVM, how it stores reg >>>>>>> clobbering information? how it is used by Reg allocators through >>>>>>> LivePhysRegs, LiveRegMatrix and other related passes? How to schedule a >>>>>>> pass using TargetPassConfig and TargetMachine? What are called callee saved >>>>>>> registers? What is an Immutable Pass? Apart from that I have also learned >>>>>>> how to use phabric...
2015 Jul 29
1
[LLVMdev] Error when i am using command make -j4 command in cygwin to compile safecode
...xt.cpp for Release+Asserts build llvm[2]: Compiling LiveRangeEdit.cpp for Release+Asserts build llvm[2]: Compiling Object.cpp for Release+Asserts build llvm[3]: Compiling DWARFDebugInfoEntry.cpp for Release+Asserts build llvm[2]: Compiling ObjectFile.cpp for Release+Asserts build llvm[2]: Compiling LiveRegMatrix.cpp for Release+Asserts build llvm[3]: Compiling DWARFDebugLine.cpp for Release+Asserts build llvm[2]: Compiling RecordStreamer.cpp for Release+Asserts build llvm[2]: Compiling MCDwarf.cpp for Release+Asserts build llvm[2]: Compiling SymbolSize.cpp for Release+Asserts build llvm[3]: Compiling DWARF...