Displaying 3 results from an estimated 3 matches for "nonvarargs".
2011 Aug 11
1
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
...of the size of the analysis information (while doing
interprocedural inlining) is to drop "illlegal" callgraph edges. This
can be very useful in many cases, particularly at helping DSA scale on
large codes that are hard to analyze. Anyway, one such arguably
illegal pairing is a varargs/nonvarargs mismatch between callsite and
callee, and filtering on this is what's causing the results you're
seeing.
To be maximally clear, DSA sees you calling a var-args method from a
non-varargs callsite and says "nope, that's illegal, that can't be
right" ("and if you really...
2011 Aug 11
0
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
I wrote:
> I'll keep poking at this some more and let you folks know if I hit any other surprises.
Well, that didn't take long. :-) I have found two new surprises in
DSCallGraph as built by TDDataStructures. Consider the following
program, which is complete and self-contained and which has one simple
indirect call site:
volatile int unknown;
static void red() { }
static void
2011 Aug 11
2
[LLVMdev] incorrect DSCallGraph for simple indirect call with vtable nearby
Will Dietz wrote:
> This is actually the expected behavior for EQTD :).
Expected by you, maybe. :-D
> If you switch to TD you'll get better alias-analysis information, and
> in this example the correct result.
OK, I have switched to TDDataStructures as well, and I am also seeing
much better (for my purposes) results in simple tests. I'll keep poking
at this some more and