On Mon, May 07, 2012 at 05:15:59PM +0200, Ivan Llopard wrote:> Thanks for your quick response Joerg. > > We have a very small test case where there is global array and its > address space attribute specified like in the following code > > const int __attribute__((address_space(256))) fangle[13] > {2341, 4681, 7022, 9362, 11703, 1403,16384, > 18725, 21065, 23406, 25746, 28087, 30427}; > > I need to put its initializer in another memory because it has a > different address space and I wanted to pass this information > through a target-depend asm directive. > At the moment, I've overridden EmitGlobalVariable() from AsmPrinter > because I didn't see any other spot to put this special directive.Have you thought about always tagging such global variables with __attribute__((section("fancyaddresspace"))) as well? That seems to be the sanest way I can think of. Joerg
Thanks for your quick response Joerg. We have a very small test case where there is global array and its address space attribute specified like in the following code const int __attribute__((address_space(256))) fangle[13] {2341, 4681, 7022, 9362, 11703, 1403,16384, 18725, 21065, 23406, 25746, 28087, 30427}; I need to put its initializer in another memory because it has a different address space and I wanted to pass this information through a target-depend asm directive. At the moment, I've overridden EmitGlobalVariable() from AsmPrinter because I didn't see any other spot to put this special directive. Ivan Le 07/05/2012 14:35, Joerg Sonnenberger a écrit :> On Mon, May 07, 2012 at 02:15:16PM +0200, Ivan Llopard wrote: >> I would like to emit target-dependent asm directives depending on the >> address space of constant initializers. Is there another method to >> implement this feature ? > I'm not sure I understand what your problem is. Can you provide an > example of what you see and what you expect, please? > > Joerg > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Le 07/05/2012 17:15, Joerg Sonnenberger a écrit :> On Mon, May 07, 2012 at 05:15:59PM +0200, Ivan Llopard wrote: >> Thanks for your quick response Joerg. >> >> We have a very small test case where there is global array and its >> address space attribute specified like in the following code >> >> const int __attribute__((address_space(256))) fangle[13] >> {2341, 4681, 7022, 9362, 11703, 1403,16384, >> 18725, 21065, 23406, 25746, 28087, 30427}; >> >> I need to put its initializer in another memory because it has a >> different address space and I wanted to pass this information >> through a target-depend asm directive. >> At the moment, I've overridden EmitGlobalVariable() from AsmPrinter >> because I didn't see any other spot to put this special directive. > Have you thought about always tagging such global variables with > __attribute__((section("fancyaddresspace"))) as well? That seems to be > the sanest way I can think of.Yes, but it seems a little odd to me. Is it correct to assume that different sections imply different address spaces ? I rather wanted to have a special asm directive on the top of section definitions to switch between memories following an identical section layout for both of them. Ivan> Joerg > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev