Displaying 4 results from an estimated 4 matches for "isstaticalloca".
2012 Mar 02
0
[LLVMdev] Stack alignment on X86 AVX seems incorrect
Hi Elena,
On Thu, Mar 1, 2012 at 8:28 PM, Demikhovsky, Elena
<elena.demikhovsky at intel.com> wrote:
> Even if you explicitly specify –stack-alignment=16 the aligned movs are
> still generated.
>
> It is not an issue related to ABI.
This looks like PR10841, explanation and the way to solve it:
http://llvm.org/bugs/show_bug.cgi?id=10841
Cheers,
--
Bruno Cardoso Lopes
2012 Mar 02
2
[LLVMdev] Stack alignment on X86 AVX seems incorrect
...ill generated.
> >
> > It is not an issue related to ABI.
>
> This looks like PR10841, explanation and the way to solve it:
> http://llvm.org/bugs/show_bug.cgi?id=10841
I was looking at this again today. What about the following approach:
(1) Change AllocaInst to compute the isStaticAlloca once and remember
it.
(2) Check all functions for
(a) static allocations with an alignment larger than the default stack
alignemnt
(b) dynamic alloca
(3) If (a) is present and not (b), use the frame pointer to address
arguments and the stack pointer to address local variables....
2012 Mar 01
3
[LLVMdev] Stack alignment on X86 AVX seems incorrect
Even if you explicitly specify –stack-alignment=16 the aligned movs are still generated.
It is not an issue related to ABI.
See my original mail:
./llc -mattr=+avx -stack-alignment=16 < basic.ll | grep movaps | grep ymm | grep rbp
vmovaps -176(%rbp), %ymm14
vmovaps -144(%rbp), %ymm11
vmovaps -240(%rbp), %ymm13
- Elena
From: Cameron McInally
2014 Nov 03
8
[LLVMdev] [PATCH] Protection against stack-based memory corruption errors using SafeStack
...ack restore points
+ for (inst_iterator It = inst_begin(&F), Ie = inst_end(&F); It != Ie; ++It) {
+ Instruction *I = &*It;
+
+ if (AllocaInst *AI = dyn_cast<AllocaInst>(I)) {
+ ++NumAllocas;
+
+ if (IsSafeStackAlloca(AI, DL))
+ continue;
+
+ if (AI->isStaticAlloca()) {
+ ++NumUnsafeStaticAllocas;
+ StaticAlloca.push_back(AI);
+ } else {
+ ++NumUnsafeDynamicAllocas;
+ DynamicAlloca.push_back(AI);
+ }
+
+ } else if (ReturnInst *RI = dyn_cast<ReturnInst>(I)) {
+ Returns.push_back(RI);
+
+ } else if (CallIns...