search for: cumulative_args

Displaying 7 results from an estimated 7 matches for "cumulative_args".

2012 Jul 17
2
[LLVMdev] [DragonEgg] Why Fortran's "call flush()" is converted to "call void bitcast (void (...)* @_gfortran_flush_i4 to void (i8*)*)(i8* null) nounwind" ?
> actually there is a different fix, which is to not pay any attention to GCC > function types when generating calls (and function prototypes), and instead > do everything by querying GCC's CUMULATIVE_ARGS. I tried to do this during llvm-gcc times and it turned out that there might be different calls with different signatures in single module e.g. function with N arguments is called in some cases with N - 1 first args and since the remaining one is unused everything is fine. So, basically the functio...
2012 Jul 17
2
[LLVMdev] [DragonEgg] Why Fortran's "call flush()" is converted to "call void bitcast (void (...)* @_gfortran_flush_i4 to void (i8*)*)(i8* null) nounwind" ?
...On 17/07/12 15:35, Anton Korobeynikov wrote: > >> actually there is a different fix, which is to not pay any attention to >>> GCC >>> function types when generating calls (and function prototypes), and >>> instead >>> do everything by querying GCC's CUMULATIVE_ARGS. >>> >> I tried to do this during llvm-gcc times and it turned out that there >> might be different calls with different signatures in single module >> e.g. function with N arguments is called in some cases with N - 1 >> first args and since the remaining one is unu...
2012 Jul 17
0
[LLVMdev] [DragonEgg] Why Fortran's "call flush()" is converted to "call void bitcast (void (...)* @_gfortran_flush_i4 to void (i8*)*)(i8* null) nounwind" ?
...they do almost no type > checking on TREEs, so the varargs decl seems to be only viable > llvm-side fix. actually there is a different fix, which is to not pay any attention to GCC function types when generating calls (and function prototypes), and instead do everything by querying GCC's CUMULATIVE_ARGS. Ciao, Duncan.
2012 Jul 17
2
[LLVMdev] [DragonEgg] Why Fortran's "call flush()" is converted to "call void bitcast (void (...)* @_gfortran_flush_i4 to void (i8*)*)(i8* null) nounwind" ?
> Oh, right, now I remember: it's a very old problem I knew 1.5 years ago. > There were even some bugs on it, here is a common case: Yes, this is right, fortran frontend produces bogus trees for every external call. The problem seems to have roots from the fact that there is no external function decl here, so frontend has no way even to infer the type from. > How do you think what
2012 Jul 17
0
[LLVMdev] [DragonEgg] Why Fortran's "call flush()" is converted to "call void bitcast (void (...)* @_gfortran_flush_i4 to void (i8*)*)(i8* null) nounwind" ?
Hi Anton, On 17/07/12 15:35, Anton Korobeynikov wrote: >> actually there is a different fix, which is to not pay any attention to GCC >> function types when generating calls (and function prototypes), and instead >> do everything by querying GCC's CUMULATIVE_ARGS. > I tried to do this during llvm-gcc times and it turned out that there > might be different calls with different signatures in single module > e.g. function with N arguments is called in some cases with N - 1 > first args and since the remaining one is unused everything is fine. >...
2012 Jul 17
0
[LLVMdev] [DragonEgg] Why Fortran's "call flush()" is converted to "call void bitcast (void (...)* @_gfortran_flush_i4 to void (i8*)*)(i8* null) nounwind" ?
...n Korobeynikov wrote: > > actually there is a different fix, which is to not pay any attention > to GCC > function types when generating calls (and function prototypes), and > instead > do everything by querying GCC's CUMULATIVE_ARGS. > > I tried to do this during llvm-gcc times and it turned out that there > might be different calls with different signatures in single module > e.g. function with N arguments is called in some cases with N - 1 > first args and since the remaining on...
2012 Jul 17
1
[LLVMdev] [DragonEgg] Why Fortran's "call flush()" is converted to "call void bitcast (void (...)* @_gfortran_flush_i4 to void (i8*)*)(i8* null) nounwind" ?
...; actually there is a different fix, which is to not pay any > attention > > to GCC > > function types when generating calls (and function > prototypes), and > > instead > > do everything by querying GCC's CUMULATIVE_ARGS. > > > > I tried to do this during llvm-gcc times and it turned out that > there > > might be different calls with different signatures in single > module > > e.g. function with N arguments is called in some cases with N - 1 > > fi...