Displaying 20 results from an estimated 9000 matches similar to: "[LLVMdev] Custom GEP lowering"
2007 Aug 29
3
[LLVMdev] Custom GEP lowering
On Aug 28, 2007, at 7:02 AM, Dan Gohman wrote:
> On Mon, Aug 27, 2007 at 07:26:55PM -0700, Scott Michel wrote:
>> It looks like I need to be able to intercept GEP lowering (in
>> SelectionDAGLowering::visitGetElementPtr) and insert something else
>> other than the shifts and adds. The basic problem is that CellSPU
>> loads and stores on 16-byte boundaries. Consequently,
2007 Aug 28
0
[LLVMdev] Custom GEP lowering
On Mon, Aug 27, 2007 at 07:26:55PM -0700, Scott Michel wrote:
> It looks like I need to be able to intercept GEP lowering (in
> SelectionDAGLowering::visitGetElementPtr) and insert something else
> other than the shifts and adds. The basic problem is that CellSPU
> loads and stores on 16-byte boundaries. Consequently, the SPU backend
> has to do the load or store differently
2007 Aug 29
0
[LLVMdev] Custom GEP lowering
On Aug 28, 2007, at 6:15 PM, Scott Michel wrote:
> On Aug 28, 2007, at 7:02 AM, Dan Gohman wrote:
>
>> On Mon, Aug 27, 2007 at 07:26:55PM -0700, Scott Michel wrote:
>>> It looks like I need to be able to intercept GEP lowering (in
>>> SelectionDAGLowering::visitGetElementPtr) and insert something else
>>> other than the shifts and adds. The basic problem is
2009 Feb 25
1
[LLVMdev] Narrowing pointers to storage width from GPR width
I have a platform that I am targeting that has 64-bit general purpose
registers but uses 32-bit pointers (ie, sizeof(void*) == 4) but
unfortunately it also requires that the top 32-bits of the pointer value
be clear. This sometimes becomes a problem with certain pointer
calculations such as using a 32-bit negative value for indexing into an
array can cause the upper bits to be set, generating
2009 Jan 26
2
[LLVMdev] DAGCombiner rant
Yes, it was I who put that rant in the commit log and it's justified. Worse,
it's unreasonable to actually go through all of DAGCombiner's code and check
to see if certain kinds of constants, e.g., i64, are legal during a
particular phase of DAGCombiner. DAGCombiner does good work and the backends
are supposed to be good citizens. CellSPU is certainly trying to be a good
citizen, no
2009 Dec 07
3
[LLVMdev] Compilation problem with JIT/Interpreter
Hi,
I'm yet working on the LLVM ExecutionEngine portability (2.6 release
version) and I get two different problems depending on the platform. The
first problem concerns compilation on MacOs X (10.5.5) with an X86
processor, when trying to compile my own project containing the
ExecutionEngine class and the linker class. I get links problem
with "_ffi_type_sint16",
2009 Dec 08
0
[LLVMdev] Compilation problem with JIT/Interpreter
Hello
> Is there additionnals information to provide to the linker when
> compiling llvm on mac os x?
Do you have libffi installed somehere?
>
>
> The second question concerns Yellow Dog Distribution(6.2) on CellSPU
> processor. Does lli support JIT compilation on CELL?
No. As far as I can see, there is no JIT for SPU.
--
With best regards, Anton Korobeynikov.
Faculty of
2009 Jan 28
0
[LLVMdev] DAGCombiner rant
Hi Scott,
I'm not clear on what you're saying here; some of your
points below seem to be contradictory. The advice to
use target-independent nodes when feasible seems
sound to me, so I wrote up a comment about it in
SelectionDAGNodes.h. If you can formulate your
thoughts in the form of specific documentation changes,
that would be helpful.
In theory, DAGCombiner is supposed to check if
2013 Jun 20
2
[LLVMdev] support for addressing units which are not 8 bits
Hi!
I want to write a LLVM back-end for a bit addressing target architecture.
http://llvm.org/docs/GetElementPtr.html#i-m-writing-a-backend-for-a-target-which-needs-custom-lowering-for-gep-how-do-i-do-this states quite clearly that some additional work must be done for this sort of architecture. Is this still true? Is there a project/branch to make it more flexible? Support for any memory
2010 Feb 22
2
[LLVMdev] Patch - big stackframes on SPU
Hello all,
currently the SPU backend does not handle big stack frames (>16*511
bytes) nicely. llc asserts on malformed machine instructions.
(Assertion `MI->getOperand(OpNo).isImm() && "printDFormAddr first
operand is not immediate")
E.g. the function:
define i32 @foo() nounwind {
entry:
%retval = alloca i32
%big_data = alloca [1000 x i32]
store i32 3840, i32*
2009 Dec 18
2
[LLVMdev] Compilation problem with JIT/Interpreter
Jerome:
No, there are no plans to JIT to SPU. That's considerably more complicated
-- you'd have to figure out when to JIT to the SPU and live with all of the
constraints that the SPU imposes (data reformatting, r/w DMA, ensure your
code lives in 256K unless you can manage to interface with the virtual
I-cache work.)
Basically, it's not trivial and it doesn't quite fit into the
2007 Oct 16
3
[LLVMdev] The one remaining bug keeping CellSPU from release...
Yup, I've got one remaining bug that holding up the CellSPU release.
It still has a bunch of warts, but so long as I can get it into shape
such that llvm-gcc-4.2 compiles all the way through, then we
collectively have something with which to work.
I'm getting the following error from llc, the attachments have llc's
debug and the .ll files, respectively. Can anyone shed some
2010 Mar 29
3
[LLVMdev] Patch - Big stacks on SPU, take 2
Hi,
attached is a second try for the bigstack patch for SPU, with testcase. It is
essentially the patch committed as 97091, and reverted as 97099, but with the
following additions:
-in vararg handling, registers are marked to be live, to not confuse the
register scavenger
-function prologue and epilogue are not emitted, if the stack size is 16. 16
means it is empty - there is only the
2010 Feb 24
0
[LLVMdev] Patch - big stackframes on SPU
On Feb 22, 2010, at 6:08 AM, Kalle.Raiskila at nokia.com wrote:
> Hello all,
>
> currently the SPU backend does not handle big stack frames (>16*511
> bytes) nicely. llc asserts on malformed machine instructions.
> (Assertion `MI->getOperand(OpNo).isImm() && "printDFormAddr first
> operand is not immediate")
Sounds fine to me in general. Please write a
2007 Oct 16
0
[LLVMdev] The one remaining bug keeping CellSPU from release...
This is a scheduler assertion. It means a value (virtual register) use
is somehow scheduled before its definition.
Please run llc in gdb. Call dumpSchedule() to print out the schedule.
Also please let me know which node it is processing at the time of the
assertion.
Evan
On Oct 15, 2007, at 11:48 PM, Scott Michel <scottm at aero.org> wrote:
> Yup, I've got one remaining bug
2010 Feb 26
3
[LLVMdev] Patch - big stackframes on SPU
Chris Lattner skrev:
> On Feb 22, 2010, at 6:08 AM, Kalle.Raiskila at nokia.com wrote:
>> currently the SPU backend does not handle big stack frames (>16*511
>> bytes) nicely. llc asserts on malformed machine instructions.
>> (Assertion `MI->getOperand(OpNo).isImm() && "printDFormAddr first
>> operand is not immediate")
>
> Sounds fine
2009 Dec 18
0
[LLVMdev] Compilation problem with JIT/Interpreter
Thank very much for this answer,
so my last question will be: is it possible to use the LLVM JIT on a PS3
with Yellow Dog 6.2 distribution, instead of the LLVM interpreter, by using
the PPE as it seems to be similar to 64-bit PowerPC processors?
2009/12/18 Scott Michel <scooter.phd at gmail.com>
> Jerome:
>
> No, there are no plans to JIT to SPU. That's considerably more
2010 Feb 16
2
[LLVMdev] Minor cosmetic issues
In -help output,
-help - Display available options
(--help-hidden for more)
Both single and double - option markers are accepted, which is good.
It would probably be better to refer to options consistently using the
single marker in all cases.
=linearscan - linear scan register allocator
=pbqp - PBQP
2010 Mar 29
0
[LLVMdev] Patch - Big stacks on SPU, take 2
On Mar 29, 2010, at 6:50 AM, Kalle Raiskila wrote:
> attached is a second try for the bigstack patch for SPU, with testcase. It is essentially the patch committed as 97091, and reverted as 97099, but with the following additions:
> -in vararg handling, registers are marked to be live, to not confuse the register scavenger
Looks good. You can try running with -verify-machineinstrs to detect
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.