Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Stack overflow in Legalize Op"
2009 Mar 11
0
[LLVMdev] Stack overflow in Legalize Op
Are you running with restricted stack size, e.g. in a pthread process?
Evan
On Mar 10, 2009, at 5:16 PM, Villmow, Micah wrote:
> I’m hitting an issue where legalizeOp is overflowing the stack. Are
> there any recommended ways of getting around this?
>
> The bitcode that causes this issue is attached.
>
> Thanks,
> Micah Villmow
> Systems Engineer
> Advanced
2009 Mar 11
1
[LLVMdev] Stack overflow in Legalize Op
This isn't running in a child process, but this is a win32 machine.
The problem I'm having is LegalizeOp is recursively calling itself 6
times, followed by 3 calls to ExpandEXTRACT_VECTOR_ELT, with each
LegalizeOp pushing 20KBof data onto the stack and Expand pushing 800B of
data on the stack. So that is 9 function calls pushing ~140KB of data
onto the stack. This set of 9 function
2009 Feb 02
2
[LLVMdev] 16 bit to 32 bit conversion
It seems that LLVM is converting all the 16 bit ints into 32 bit ints.
Is there a way I can tell LLVM that 16 bit ints are valid and legal and
not to do any conversions on them?
Thanks,
Micah Villmow
Systems Engineer
Advanced Technology & Performance
Advanced Micro Devices Inc.
S1-609 One AMD Place
Sunnyvale, CA. 94085
P: 408-749-3966
-------------- next part
2009 Mar 07
2
[LLVMdev] Load with null memory operand?
How do I match against this instruction?
01ABDA58: i64,ch = load 01ABD948, 01ABD8C0, 01AB1350 <null:0>
This is the first time I've seen NULL in the memory operand location.
Any idea on how this could be mapped with tablegen correctly?
Thanks,
Micah Villmow
Systems Engineer
Advanced Technology & Performance
Advanced Micro Devices Inc.
S1-609 One AMD Place
Sunnyvale,
2009 May 21
0
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On Wed, May 20, 2009 at 4:55 PM, Dan Gohman <gohman at apple.com> wrote:
> Can you explain why you chose the approach of using a new pass?
> I pictured removing LegalizeDAG's type legalization code would
> mostly consist of finding all the places that use TLI.getTypeAction
> and just deleting code for handling its Expand and Promote. Are you
> anticipating something more
2009 Nov 13
3
[LLVMdev] legalize dag problem
Hi
I am running into a legalize dag issue after custom lowering a
load. If someone can give me pointers that would be great. I am using
llvm 2.6
When custom lowering a load, the following code gets executed.
Tmp1 = TLI.LowerOperation(Tmp3, DAG);
if (Tmp1.getNode()) {
Tmp3 = LegalizeOp(Tmp1);
Tmp4 = LegalizeOp(Tmp1.getValue(1)); <----------------- what
2009 May 20
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On May 20, 2009, at 1:34 PM, Eli Friedman wrote:
> On Wed, May 20, 2009 at 1:19 PM, Eli Friedman
> <eli.friedman at gmail.com> wrote:
>
>> Per subject, this patch adding an additional pass to handle vector
>>
>> operations; the idea is that this allows removing the code from
>>
>> LegalizeDAG that handles illegal types, which should be a significant
2009 Jan 29
1
[LLVMdev] LowerArguments vs LowerFORMAL_ARGUMENTS
What is the difference between these two functions? The header file for
TargetLowering class says that LowerArguments must be implemented, but
only the Sparc and IA64 backends implement them. X86, PowerPC and
CellSPU implement LowerFORMAL_ARGUMENTS, but I can find a
setOperationAction that states that they should be lowered. Can someone
please explain this for me?
Thanks,
Micah Villmow
2009 Feb 02
0
[LLVMdev] 16 bit to 32 bit conversion
Are you marking i16 a legal type? In XXISelLowering.cpp, you should
assign it a register class. e.g. addRegisterClass(MVT::i16,
XX::i16RegisterClass)
Evan
On Feb 2, 2009, at 12:19 PM, Villmow, Micah wrote:
> It seems that LLVM is converting all the 16 bit ints into 32 bit
> ints. Is there a way I can tell LLVM that 16 bit ints are valid and
> legal and not to do any conversions
2009 Feb 05
1
[LLVMdev] CallingConv
Currently with my understanding of using callingconv.td I still need to
lower three functions, FORMAL_ARGUMENTS, CALL, and RET. Is there any
known way to have LLVM automagically generate code from tablegen without
having to custom lower these functions? The reasoning for this is that
all registers are virtual in my backend and I have specified for llvm to
use it's generic dynamic stack
2009 Mar 09
0
[LLVMdev] Load with null memory operand?
It depends on how your target models its addressing mode. Targets with
complex addressing modes usually isel addresses with custom code.
Evan
On Mar 6, 2009, at 4:05 PM, Villmow, Micah wrote:
> How do I match against this instruction?
> 01ABDA58: i64,ch = load 01ABD948, 01ABD8C0, 01AB1350 <null:0>
>
>
> This is the first time I’ve seen NULL in the memory operand
>
2009 Mar 23
1
[LLVMdev] Machine dependent dead-instruction elimination
I have a pass that modifies my machine dependent instructions and I have
ran into a situation where I want to remove all instructions that an
instruction is dependent on when I remove an instruction.
Is there a way to do this using the API calls?
For example, I have a sequence of instructions
a = b + c
d = c * c
store d, *a
load e, *a
f = e + d
since the store and load are
2009 Mar 30
1
[LLVMdev] Determining the base offset of the stack for a function.
I am running into an issue where if I have multiple functions compiled
in the same compilation unit the stack offset is not starting at zero.
For example:
func1(...)
{
...
}
func2(...)
{
...
}
Say the first function uses 64 bytes of the stack and an assumed offset
of 0 and the second function uses 32 bytes of the stack but an assumed
offset of 64. I've found out how to get the
2009 Feb 05
2
[LLVMdev] 16 bit floats
I need to support 16 bit floats for some operations, outside of
datatypes.td and the constants class, is there anything else I will need
to modify to add f16 support?
Thanks,
Micah Villmow
Systems Engineer
Advanced Technology & Performance
Advanced Micro Devices Inc.
S1-609 One AMD Place
Sunnyvale, CA. 94085
P: 408-749-3966
-------------- next part --------------
An HTML
2009 Feb 07
1
[LLVMdev] Patch: More data types
I've patched valuetypes.td/h to add data types that my backend needs to
support. There seems to be a lot of assumptions made in other spots of
the code that limit the number of data types to 32. I need to add a few
more types, but once I go over this limit llvm starts acting wonky. I
found all the items that are hard coded to 32 and a section that isn't,
but I cannot figure out how to
2016 Mar 15
2
how to type-legalize a dag
On Tue, Mar 15, 2016 at 2:21 PM, Krzysztof Parzyszek via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> On 3/15/2016 4:16 PM, Rail Shafigulin via llvm-dev wrote:
>
>> Below is the output of llc with a -debug-only=isel. As you could see the
>> output type for load, store, and add changes from v4i32 to i32 during
>> legalization. How can I preserve the output type to
2008 Oct 02
2
[LLVMdev] Type Legalizer Question.
On Thu, 2008-10-02 at 08:53 -0700, Chris Lattner wrote:
> On Oct 2, 2008, at 8:38 AM, Eli Friedman wrote:
>
> > On Thu, Oct 2, 2008 at 7:34 AM, Evan Cheng <evan.cheng at apple.com>
> > wrote:
> >>
> >> On Oct 2, 2008, at 2:01 AM, sanjiv gupta wrote:
> >>
> >>>
> >>>>
> >>>> So you have a i16 register
2008 Oct 02
1
[LLVMdev] Type Legalizer Question.
> >>>> You can try just marking all i16 operations, other than load and
> >>>> store, as "expand". Would that work?
> >>>
> >>> Won't work; LLVM expects at least some basic operations, like add,
> >>> to
> >>> be legal in legal register types.
> >>
> >> That sounds like a bug, not a
2008 Oct 02
0
[LLVMdev] Type Legalizer Question.
On Oct 2, 2008, at 10:11 AM, sanjiv gupta wrote:
> On Thu, 2008-10-02 at 08:53 -0700, Chris Lattner wrote:
>> On Oct 2, 2008, at 8:38 AM, Eli Friedman wrote:
>>
>>> On Thu, Oct 2, 2008 at 7:34 AM, Evan Cheng <evan.cheng at apple.com>
>>> wrote:
>>>>
>>>> On Oct 2, 2008, at 2:01 AM, sanjiv gupta wrote:
>>>>
2008 Sep 15
3
[LLVMdev] Bad legalization?
I am getting an assert on a bad legalization.
Assertion failed: Result.getValueType() == Op.getValueType() && "Bad
legalization!", file ..\..\lib\CodeGen\SelectionDAG\LegalizeDAG.cpp,
line 3976
Can someone explain to me what this means in term of backend code
generation, how it might be occurring, and possible ways to fix this? I
don't see how the value type of an