Displaying 20 results from an estimated 200 matches similar to: "LEAQ instruction path"
2018 Jan 22
1
X86 new registers not being allocated
Hi all,
I have a bunch of new registers set up in X86RegisterInfo.td, the important
part being
def PR128 : RegisterClass<"X86", [i128],
128, (sequence "POI%u", 0, 7)>;
def VR128 : RegisterClass<"X86", [v4f32, v2f64, v16i8, v8i16, v4i32, v2i64],
128, (add PR128, FR32)>;
I have an entry in
2018 Jan 19
1
Registers for i128 data type not registered in X86
Hi,
I have a set of new registers for x86 which I defined in
X86RegisterInfo.td to be:
def POI0: X86Reg<"poi0", 0>;
def POI1: X86Reg<"poi1", 1>;
def POI2: X86Reg<"poi2", 2>;
def POI3: X86Reg<"poi3", 3>;
def POI4: X86Reg<"poi4", 4>;
def POI5: X86Reg<"poi5", 5>;
def POI6: X86Reg<"poi6",
2017 Dec 27
1
Wrapper functions for standard library functions
Hi,
I would like to wrap some of the library functions such as malloc() into
for example:
malloc_wrapper(int size) {
malloc(size+4); //call the real malloc here
}
and have all uses of malloc replaced with malloc_wrapper. Is there a way to
do that?
--
----------------
Barbora Murinová
The University of Edinburgh
SK: +421905718390 <+421%20905%20718%20390>
UK: +447477833795
2018 Jan 10
1
X86 target description string
Hi all,
the backend data layout string is generated in X86TargetMachine.cpp. As far
as I understand, however, that is not the only place where the target
description string is generted. Where does the expected target description
string come from?
Thanks!
--
----------------
Barbora Murinová
The University of Edinburgh
SK: +421905718390
UK: +447477833795
-------------- next part --------------
2017 Dec 11
2
New x86 instruction with opcode 0x0F 0x7A
Hi all,
I'm trying to simulate an extended x86 architecture on gem5 with several
new instructions. My hardware setup is done and now I'd like llvm to accept
the existence of the new instruction passed in inline assembly and output
the correct opcode and registers. I chose the two-byte opcode 0x0F 0x7A and
I would like the instruction to have the same operands and return values
as CVTPS2PI
2018 Jan 16
1
Beginner question: extending pointer to 128 bits segfaults
Hi all,
I've been trying to extend pointer size of the X86 target to 128 bits. For
the prortype, I would like nothing more than the pointers being i128 type
with the same value as before. All I've done was changing the data layout
string to p:128:128 and when trying to run a basic program such as:
int a = 42;
int *p = &a;
it segfaults with the following stack trace:
#0
2018 Feb 16
0
CopyToReg node
Hi all,
I'm having some trouble with x86 generating some CopyToReg nodes with a
null 2nd operand. I've done an extensive search of the entire codebase and
found that all creation of CopyToReg nodes happens at SelectionDAG.h,
eventually, but my debug messages did not register a call to either of the
three getCopyToReg methods it provides. Is there any other place where
CopyToReg nodes get
2018 Jan 29
0
Additional instructions created
Hi all,
I've got a few new registers and I've extended the pointer size to be 128
bits. For allocas, that is done by adding another SelectionDAG after
FrameIndex that extends it to 128 bits. That seems to work okay, except
that the final representation throws in additional instructions. For
example for a piece of code such as:
int a;
int* pointer = &a;
it returns
pushq %rbp
2013 May 13
1
[LLVMdev] Problem with MachineFunctionPass and JMP
Hi !
I'm trying to modify the code in a machine function pass…
I added a new basicblock and I want to add a jump to an another BB from my new BB.
Here is my code :
bool Obfuscation::runOnMachineFunction(MachineFunction &MF) {
MachineBasicBlock *newEntry = MF.CreateMachineBasicBlock();
MF.insert(MF.begin(), newEntry);
std::vector<MachineBasicBlock*> origBB;
2008 Jan 16
4
[LLVMdev] LiveInterval Questions
I had been assuming that give a LiveRange a, a.valno->def, if
valid, would be the same as a.start. But this is apparently not
always the case. For example:
Predecessors according to CFG: 0x839d130 (#3) 0x8462780 (#35)
308 %reg1051 = MOV64rr %reg1227<kill>
312 %reg1052 = MOV64rr %reg1228<kill>
316 %reg1053 = MOV64rr %reg1229<kill>
320 %reg1054 = MOV64rr
2008 Nov 17
2
[LLVMdev] Patterns with Multiple Stores
I want to write a pattern that looks something like this:
def : Pat<(unalignedstore (v2f64 VR128:$src), addr:$dst),
(MOVSDmr ADD64ri8(addr:$dst, imm:8), ( SHUFPDrri (VR128:$src,
(MOVSDmr addr:$dst, FR64:$src))), imm:3)
So I want to convert an unaligned vector store to a scalar store, a shuffle
and a scalar store.
There are several question I have:
- Is the imm:3 syntax
2008 Jan 17
0
[LLVMdev] LiveInterval Questions
On Jan 16, 2008, at 11:49 AM, David Greene wrote:
> I had been assuming that give a LiveRange a, a.valno->def, if
> valid, would be the same as a.start. But this is apparently not
> always the case. For example:
>
> Predecessors according to CFG: 0x839d130 (#3) 0x8462780 (#35)
> 308 %reg1051 = MOV64rr %reg1227<kill>
> 312 %reg1052 = MOV64rr %reg1228<kill>
2015 Jul 28
1
[LLVMdev] Adding a stack probe function attribute
On Tue, Jul 28, 2015 at 6:34 PM, Reid Kleckner <rnk at google.com> wrote:
> On Tue, Jul 28, 2015 at 2:25 AM, John Kåre Alsaker
> <john.mailinglists at gmail.com> wrote:
>>
>> On Tue, Jul 28, 2015 at 12:44 AM, Reid Kleckner <rnk at google.com> wrote:
>> > Yeah, the function attributes section of LangRef is a reasonable place
>> > to
>>
2008 Nov 17
0
[LLVMdev] Patterns with Multiple Stores
On Monday 17 November 2008 14:28, David Greene wrote:
> I want to write a pattern that looks something like this:
>
> def : Pat<(unalignedstore (v2f64 VR128:$src), addr:$dst),
> (MOVSDmr ADD64ri8(addr:$dst, imm:8), ( SHUFPDrri (VR128:$src,
> (MOVSDmr addr:$dst, FR64:$src))), imm:3)
>
> So I want to convert an unaligned vector store to a scalar store, a
2015 Aug 16
2
[LLVMdev] Adding a stack probe function attribute
I started to implement inlining of the stack probe function based on
Microsoft's inlined stack probes in
https://github.com/Microsoft/llvm/tree/MS.
Do we know why the stack pointer cannot be updated in a loop (which
results in ideal code)? I noticed that was commented in Microsoft's
code.
I suspect this is due to debug or unwinding information, since it is
allowed on Windows x86-32.
I
2014 Oct 27
4
[LLVMdev] Problem in X86 backend
Hi,
I'm having some trouble wirting an instruction in the X86 backend.
I made a new intrinsic and I wrote a custom inserter for my intrinsic in the X86 backend.
Everything works fine, except for one instruction that I can't find how to write.
I want to add this instruction in one of my machine basic block: mov [rdi], 0
How can I achieve that with the LLVM api? I tried several
2008 Sep 03
2
[LLVMdev] Codegen/Register allocation question.
Hi LLVMers,
I have finally sorted out licensing issues and found some time, so I'm
trying to port my PBQP register allocator to 2.4 in order to
contribute it (if you want it). I've run into a bug that has me
confused though.
I'm currently failing the following assertion:
llc: VirtRegMap.cpp:1733:
void<unnamed>::LocalSpiller::RewriteMBB(llvm::MachineBasicBlock&,
2019 Dec 23
2
Register Dataflow Analysis on X86
Hi Scott,
That #1073741833 is a register mask. They are treated as aggregate registers (essentially sets of registers), so if it includes R9D and R11D, it will be treated as being aliased with both.
These separate defs are there because they reach disjoint registers.
--
Krzysztof Parzyszek kparzysz at quicinc.com<mailto:kparzysz at quicinc.com> AI tools development
From: Scott
2020 Jan 10
2
Register Dataflow Analysis on X86
Hi Scott,
Sorry for the late reply, I was out of office during the holidays.
1. A def node can reach either a use node, or another def node. In the highlighted phi node (p3224), the def (d3225) reaches another def (1598) in statement (s1597), that’s why it’s needed.
2. The reason why the def of R11 in s1578 is not connected directly to the use in s1725 is that there may be an intervening
2008 Sep 04
0
[LLVMdev] Codegen/Register allocation question.
On Sep 3, 2008, at 5:58 AM, Lang Hames wrote:
> Hi LLVMers,
>
> I have finally sorted out licensing issues and found some time, so I'm
> trying to port my PBQP register allocator to 2.4 in order to
Nice! We would definitely welcome your contribution.
>
> contribute it (if you want it). I've run into a bug that has me
> confused though.
>
> I'm currently