Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] Tracing nodes in selectionDAG to final code..."
2011 Jun 22
1
[LLVMdev] Mips backend -- Incorrect globaladdr/constpool address generation when bit 15 of address is set?
Hi All,
In SVN head, MipsISelDAGToDAG.cpp has the following optimization:
// Operand is a result from an ADD.
if (Addr.getOpcode() == ISD::ADD) {
// When loading from constant pools, load the lower address part in
// the instruction itself. Example, instead of:
// lui $2, %hi($CPI1_0)
// addiu $2, $2, %lo($CPI1_0)
// lwc1 $f0, 0($2)
// Generate:
//
2007 Jul 12
1
[LLVMdev] backend problem with LiveInterval::removeRange
Hi all,
When compiling some programs using the Mips backend
i'm getting this assert message on lib/CodeGen/LiveInterval.cpp:227:
"Range is not entirely in interval!"
I don't know yet if it's something that is missing on the backend code or
why
the range to be removed it outside the interval, does anyone have any clue?
A more detailed output is attached.
The program i tried
2013 Feb 20
3
[LLVMdev] Is va_arg correct on Mips backend?
I didn't have Mips board. I compile as the commands and check the asm output as below.
1. Question:
The distance of caller arg[4] and arg[5] is 4 bytes. But the the callee get every
arg[] by 8 bytes offset (arg_ptr1+8 or arg_ptr2+8). I assume the #BB#4 and #BB#5 are the arg_ptr which is the pointer to access the stack arguments.
2. Question:
Stack memory 28($sp) has no initial value. If
2013 Feb 20
0
[LLVMdev] Is va_arg correct on Mips backend?
Does it make a difference if you give the "-target" option to clang?
$ clang -target mips-linux-gnu ch8_3.cpp -o ch8_3.bc -emit-llvm -c
The .s file generated this way looks quite different from the one in your
email.
On Tue, Feb 19, 2013 at 5:06 PM, Jonathan <gamma_chen at yahoo.com.tw> wrote:
> I didn't have Mips board. I compile as the commands and check the asm
>
2013 Feb 04
2
[LLVMdev] Problem with PTX assembly printing (NVPTX backend)
Hi,
> Can you post the llc command line you're using? Can you post an LLVM IR
> file that causes this behavior?
yes:
${LLVM_PATH}/bin/llc -o helloworld.s -march=nvptx helloworld.ll
where LLVM_PATH my local installation path for LLVM.
Also attaching helloworld.c:
#include <stdio.h>
int main(void) {
printf("Hello World!\n");
return 0;
}
and helloworld.ll:
2013 Feb 04
0
[LLVMdev] Problem with PTX assembly printing (NVPTX backend)
Alright, couple of points here:
1. Address space 0 is invalid for global variables. This is causing a
crash in llc where we use llvm_unreachable() on this case. This is most
likely why you're seeing llc run forever. The fix for this is to use
address space 1 for globals, which puts them into PTX global memory. On
our side, we should provide a meaningful error message in this case.
2. The
2013 Feb 19
0
[LLVMdev] Is va_arg correct on Mips backend?
Which part of the generated code do you think is not correct? Could you be
more specific?
I compiled this program with clang and ran it on a mips board. It returns
the expected result (21).
On Tue, Feb 19, 2013 at 4:15 AM, Jonathan <gamma_chen at yahoo.com.tw> wrote:
> I check the Mips backend for the following C code fragment compile result.
> It seems not correct. Is it my
2013 Feb 19
2
[LLVMdev] Is va_arg correct on Mips backend?
I check the Mips backend for the following C code fragment compile result. It seems not correct. Is it my misunderstand or it's a bug.
//ch8_3.cpp
#include <stdarg.h>
int sum_i(int amount, ...)
{
int i = 0;
int val = 0;
int sum = 0;
va_list vl;
va_start(vl, amount);
for (i = 0; i < amount; i++)
{
val = va_arg(vl, int);
sum += val;
}
va_end(vl);
2012 Oct 06
2
[LLVMdev] Pairing Registers on a Target Similar to Mips?
I'm working on a target based on the MIPS target, and when I copy f64
values into 32 bit registers for calling functions, I need the operation to
work on a of 32 bit registers (because the language I'm translating to
isn't actually mips). I've been looking at how to do this, but I haven't
been able to figure it out. Since the Mips target code is still really
close to mine,
2016 Oct 15
3
How to remove memcpy
Hi,
I am hoping that someone can help me figure out how to prevent the
insertion of "memcpy" from the assembly source.
My target is an instruction set simulator that doesn't support this.
Thank you for your valuable time.
Wolf
*Here are my compile commands:*
$ clang -emit-llvm -fno-builtin -o3 --target=mips -S matrix_float.c -o
vl_matrix_float.ll
$ llc vl_matrix_float.ll
*IR
2017 Oct 13
2
[SelectionDAG] Assertion due to MachineMemOperand flags difference.
Hello,
I've hit an assertion in SelectionDAG where we try to merge 2 loads
that have the same operands but their MMO flags differ. One is
dereferenceable and one is not. I'm not sure what the underlying issue
here is:
1) MDSDNode with the same operands should have the same flags set on
their respective MMO. The fact the flags differ when the
opcode,types,operands and address-space are
2012 Oct 09
0
[LLVMdev] Pairing Registers on a Target Similar to Mips?
Ryan,
I don't think I fully understand the problem you described, but please see
the comments below.
Hope this helps you solve the problem.
On Sat, Oct 6, 2012 at 3:18 PM, ryan baird <ryanrbaird at gmail.com> wrote:
> I'm working on a target based on the MIPS target, and when I copy f64
> values into 32 bit registers for calling functions, I need the operation to
> work
2011 Nov 11
4
[LLVMdev] How to get MIPS from clang + llvm ?
I was told that I can use clang + llvm to get MIPS instructions on my x86 machine.
I did following command and got error below. Does anyone have any idea ? or can someone suggest me how to get MIPS instructions easily from llvm.
clang -ccc-host-triple mips-unknown-linux -ccc-clang-archs mips helllo.c
clang: warning: unknown platform, assuming -mfloat-abi=soft
'+' is not a recognized
2013 Sep 02
0
[LLVMdev] .globl
Hi Reed,
Still catching up on email, so hope this isn't already covered...
reed kotler <rkotler at mips.com> writes:
> I have a strange issue that I encountered with mips16 hard float.
>
> Part of mips16 hard float is to emit calls to runtime routines with the
> same signature as usual soft float routines, except that they are
> implemented using mips32 code which uses
2018 May 04
0
How to constraint instructions reordering from patterns?
Here is a last example to illustrate my concern.
The problem is about the lowering of node t13.
Initial selection DAG: BB#0 '_start:entry'
SelectionDAG has 44 nodes:
t11: i16 = Constant<0>
t0: ch = EntryToken
t3: ch = llvm.clp.set.rspa t0, TargetConstant:i16<392>, Constant:i32<64>
t5: ch = llvm.clp.set.rspb t3,
2013 Feb 27
2
[LLVMdev] Mips backend 3.2 va_arg possible bug
i have this code
typedef long long L;
typedef integer I;
void test2(auto L p0, auto L p1, auto L p2, auto L p4, ...)
{
va_list select;
va_start (select, p4);
report( va_arg(select,L) );
report( va_arg(select,I) );
report( va_arg(select,L) );
2016 Nov 29
2
[LLD] Writing thunks before the corresponding section
Hi,
Sorry for delay with reply.
It looks like now thunks can be implemented as a synthetic sections.
In that case we give flexible solution and will be able to put thunks
before/after related sections, using different alignment etc. As far
as I know BFD linker uses the same approach at least for MIPS thunks.
I will try to implement this idea.
On Thu, Sep 8, 2016 at 1:44 AM, Rui Ueyama <ruiu
2018 May 04
0
How to constraint instructions reordering from patterns?
Krzysztof,
Thanks for your interest to my questions.
In order to clarify the context, here is the C source file of my test case.
The 3 builtins initialize some stack pointers. They have to be executed before any other instruction.
extern float fdivfaddfmul_a(float a, float b, float c, float d);
volatile static float x1,x2,x3,x4;
void _start(void)
{
float res;
2011 Oct 05
4
[LLVMdev] MIPS 32bit code generation
Hi,
In order to emit "la $4,ADDR" instead of lui followed by addiu to load
the data address, could you advise what is proper way to revise td files in
the MIPS target?
Thanks,
--
Gang-Ryung Uh, Associate Professor
Department of Computer Science
College of Engineering, Boise State Univerisity
tel: 1 208 426-5691 e-mail:guh at boisestate.edu
http://cs.boisestate.edu/~uh
2011 Oct 07
2
[LLVMdev] MIPS 32bit code generation
Hi,
I noticed one class in MipsInstrFormats.td:L46 -> Class MipsPseudo. I
wonder whether I can use this. If does, I wonder what would be the right way
to use. Thanks,
On Thu, Oct 6, 2011 at 11:29 AM, Akira Hatanaka <ahatanak at gmail.com> wrote:
> Do you want to replace
>
> lui $2, %hi(g1)
> addiu $2, $2, %lo(g1)
>
> with this?
> la $2, g1
>
> If that