Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] struct as a function argument"
2007 Oct 02
2
[LLVMdev] struct as a function argument
On Oct 2, 2007, at 1:03 AM, Domagoj Babic wrote:
> Hi all,
>
> I have the same problem. My guess is that when a structure
> is passed as a parameter, you cast it into an array for optimization
> reasons (less parameters, less stack space).
This is not an optimization. This behavior is to be ABI complaint
when emitting code for your OS.
That said, this is not a very good way to
2007 Oct 02
0
[LLVMdev] struct as a function argument
Hi all,
I have the same problem. My guess is that when a structure
is passed as a parameter, you cast it into an array for optimization
reasons (less parameters, less stack space).
This is, certainly, a reasonable optimization, but makes
inter-procedural static analysis more complex. Is there a way to
disable it (my guess is that this should be doable by passing
some parameter to llvm-gcc)?
If
2007 Aug 29
2
[LLVMdev] constructing 'for' statement from LLVM bitcode
Seung,
On 8/25/07, Chris Lattner <sabre at nondot.org> wrote:
> Ok. Note that LLVM can represent irreducible loops. You can handle
> this through code duplication.
> -Chris
If you are willing to invest more effort into a more complicated analysis,
in many cases you can even avoid code duplication. See this paper for
details:
@inproceedings{erosa94taming,
author = {Ana M.
2007 Aug 30
0
[LLVMdev] constructing 'for' statement from LLVM bitcode
On 8/29/07, Domagoj Babic <babic.domagoj at gmail.com> wrote:
> Seung,
>
> On 8/25/07, Chris Lattner <sabre at nondot.org> wrote:
> > Ok. Note that LLVM can represent irreducible loops. You can handle
> > this through code duplication.
> > -Chris
>
>
> If you are willing to invest more effort into a more complicated analysis,
> in many cases you
2007 Aug 12
1
Calysto v1.5 reports on ssh v4.6p1
New version of Calysto reports a warning that looks like a bug to me:
------------------------------------------
Possible NULL-ptr deref (vc27053):
@/work/projects/llvm/tools/Calysto/IfaceSpecs/clib.c:1823
Bug: ??
Explanation:
choose_dh (dh.c:111) calls fopen twice (@120). If the first call to
fopen fails (returns NULL), but the second one succeeds, fgets (@129) is
called with f==NULL.
2007 Jun 20
1
NULL ptr dereferences found with Calysto static checker
Hi,
I've ran my static checker Calysto on openssh and found the following bug:
Possible NULL-ptr deref (vc536):
@/work/benchmarks/SOURCES/openssh-4.6p1/moduli.c:173
+ ptr gtm returned from gmtime dereferenced without checking (gmtime can
return NULL).
There are probably more possible NULL-ptr dereferences, but Calysto
currently does not check the usage of library functions (for instance,
if
2007 Aug 26
0
[LLVMdev] constructing 'for' statement from LLVM bitcode
>> It has a section on "structural analysis" that you will find useful.
>>
>> Why do you want "for statements"?
>>
>
> Thank you for this info, Chris.
> I'm doing this 'cause I'm making a backend for a virtual machine
> assembly has an instruction which is very similar to 'for' statement.
> I know this seems quite
2007 Aug 25
2
[LLVMdev] constructing 'for' statement from LLVM bitcode
---- Original message ----
>Date: Fri, 24 Aug 2007 22:23:39 -0700
>From: Chris Lattner <sabre at nondot.org>
>Subject: Re: [LLVMdev] constructing 'for' statement from LLVM bitcode
>To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu>
>
>
>On Aug 24, 2007, at 10:07 PM, Seung Jae Lee wrote:
>
>> Do you have any idea on how I can construct
2007 Aug 30
1
[LLVMdev] constructing 'for' statement from LLVM bitcode
Daniel,
On 8/30/07, Daniel Berlin <dberlin at dberlin.org> wrote:
> On 8/29/07, Domagoj Babic <babic.domagoj at gmail.com> wrote:
> > Seung,
> >
> > On 8/25/07, Chris Lattner <sabre at nondot.org> wrote:
> > > Ok. Note that LLVM can represent irreducible loops. You can handle
> > > this through code duplication.
> > > -Chris
>
2006 Dec 10
3
[LLVMdev] Building llvm-gcc4 on amd64
Hi all,
I spent several hours today trying to compile llvm-gcc4 from svn and llvm from
cvs on amd64 linux. In the case anyone else decides to try the same, this
could ease your pain:
1) check out llvm, llvm-gcc
2) create llvm-obj llvm-gcc-obj
export LLVM_INSTAL=<install_dir>
cd llvm-obj
export LLVM_OBJ=`pwd`
../llvm/configure --prefix=$LLVM_INSTALL --enable-debug-runtime
4) At one point,
2007 Nov 21
3
[LLVMdev] Add/sub with carry; widening multiply
I've been playing around with llvm lately and I was wondering something about the bitcode instructions for basic arithmetic. Is there any plan to provide instructions that perform widening multiply, or add with carry? It might be written as:
mulw i32 %lhs %rhs -> i64 ; widening multiply
addw i32 %lhs %rhs -> i33 ; widening add
addc i32 %lhs, i32 %rhs, i1 %c -> i33 ; add with carry
2006 Sep 29
2
[LLVMdev] FunctionPass requiring SCCs
On Sep 29, 2006, at 2:05 PM, Domagoj Babic wrote:
>
> Check out scc_* iterators. Also note that the call graph
> is not aware of the indirect calls, so you will need to write your
> own CG implementation if you need to handle function pointers
> soundly.
>
Chris, is this true? If so, it seems like a bad property for the
CallGraphSCCPass framework.
--Vikram
2006 Nov 29
0
[LLVMdev] LLVM Conference 2007 ?
Hi all,
On 11/28/06, Reid Spencer <rspencer at reidspencer.com> wrote:
> * Venue: West Coast, USA. Probably either San Francisco Bay Area or
> Seattle
> * Time Frame: Post 2.0 release, summer 2007
> * Topics: Anything related to use or development of LLVM
I'd vote for Seattle. The costs of organization should be lower than in
the Bay Area.
> * An indication of how
2007 Apr 08
2
[LLVMdev] New automated decision procedure for path-sensitive analysis
Dear LLVMers,
This email is intended for those interested in path-sensitive analysis,
integer overflow analysis, static analysis, and (perhaps) loop invariant
computation.
Traditionally, such analyses have been considered too expensive to be
practical, and were mostly an academic curiosity. The core of the
problem is the lack of adequate automated decision procedures which
could quickly
2006 Dec 10
2
[LLVMdev] How to compile apps to bc files with the new llvm-gcc4?
Hi,
I'm trying to compile some apps with the new llvm-gcc4 on amd64 linux
to .bc files, rather than to the native code. The same process I used to
build those apps before with llvm-gcc3 doesn't work:
1)
export CC=llvm-gcc CXX=llvm-g++ CFLAGS="-g -fno-inline" CXXFLAGS="-g
-fno-inline"
2) cd <whatever-app>; ./configure
3) make CFLAGS+=-emit-llvm
2006 Jun 07
0
[LLVMdev] SCCP and undef branches
Hi,
Here's something I don't understand... How come that UNDEF can
appear as a branch condition at all? I just can't think of any ways.
If you write something like
fun() {
int x;
if (x > 100) {
...
} else {
...
}
}
LLVM generates a boolean temporary that compares (uninitialized)
value of x with 100.
Second, if it already can appear, isn't that a bug that
2006 Jun 06
3
[LLVMdev] SCCP and undef branches
Daniel Berlin wrote:
> Nick Lewycky wrote:
>
>>I found that "undef" was disappearing early into the optimization chain.
>>SCCP was the culprit, transforming:
>>
>> br bool undef, label %T, label %F
>>
>>into
>>
>> br bool true, label %T, label %F
>>
>>While that sounds like a great optimization, it shouldn't be
2006 Dec 10
0
[LLVMdev] How to compile apps to bc files with the new llvm-gcc4?
Unless I'm missing something, the problem lies directly with the fact that
you are trying to do a link-stage operation with the GCC frontend. GCC, by
default, probably runs "ld" or another system linker, which grabs the
executable from binutils. This linker hasn't been modified (yet) to include
support for .bc files, but you're compiler is emitting byte code to the *.o
files.
2006 Nov 29
7
[LLVMdev] LLVM Conference 2007 ?
LLVMers,
The LLVM Oversight group is trying to assess whether there is sufficient
interest in the LLVM development community for holding an LLVM
Conference next summer. If getting together with your fellow LLVM
Developers sounds interesting to you, please respond to me (off list)
and I'll summarize the results.
Here's our current thinking:
* Venue: West Coast, USA. Probably either San
2006 Sep 29
2
[LLVMdev] FunctionPass requiring SCCs
I have a FunctionPass F that needs a list of all the SCCs for use in its
doFinalization() method. Let's say I write a CallGraphSCCPass C that
creates an array of all SCCs. Let C be required by F, and let F call
getAnalysis<C>() from its doFinalization() method. Am I guaranteed that
C's runOnSCC() method will have executed on all SCCs before F's
doFinalization() method?