* Emission of store_multiple and load_multiple patterns @ 2009-12-11 9:31 noeljohn 2009-12-12 2:21 ` Ian Lance Taylor 0 siblings, 1 reply; 17+ messages in thread From: noeljohn @ 2009-12-11 9:31 UTC (permalink / raw) To: gcc-help Hi Experts, I am working on a new risc machine. I have defined the "store_multiple" and "load_multiple" pattern and the system builds fine. But when I compile the C program for a declared integer array, the "store_multiple" and "load_multiple" patterns are not getting emitted. Instead simple load and store patterns are emitted multiple times. As per actual working store_multiple and load_multiple patters need to get emitted. Please do help me regarding this. Thank you. -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p26739724.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2009-12-11 9:31 Emission of store_multiple and load_multiple patterns noeljohn @ 2009-12-12 2:21 ` Ian Lance Taylor 2009-12-14 12:40 ` noeljohn 0 siblings, 1 reply; 17+ messages in thread From: Ian Lance Taylor @ 2009-12-12 2:21 UTC (permalink / raw) To: noeljohn; +Cc: gcc-help noeljohn <noel.daniel@gmx.com> writes: > I am working on a new risc machine. I have defined the > "store_multiple" and "load_multiple" pattern and the system builds fine. But > when I compile the C program for a declared integer array, the > "store_multiple" and "load_multiple" patterns are not getting emitted. > Instead simple load and store patterns are emitted multiple times. As per > actual working store_multiple and load_multiple patters need to get emitted. What do your store_multiple and load_multiple insns look like? E.g., if they only work for consecutive registers, then gcc can only match them after register allocation, but there is no appropriate optimization pass to do so. In that case you are going to have write peepholes for them, and you're going to have to generate them explicitly in your backend's prologue and epilogue generation. Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2009-12-12 2:21 ` Ian Lance Taylor @ 2009-12-14 12:40 ` noeljohn 2009-12-16 1:18 ` Ian Lance Taylor 0 siblings, 1 reply; 17+ messages in thread From: noeljohn @ 2009-12-14 12:40 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> I am working on a new risc machine. I have defined the >> "store_multiple" and "load_multiple" pattern and the system builds fine. >> But >> when I compile the C program for a declared integer array, the >> "store_multiple" and "load_multiple" patterns are not getting emitted. >> Instead simple load and store patterns are emitted multiple times. As per >> actual working store_multiple and load_multiple patters need to get >> emitted. > > What do your store_multiple and load_multiple insns look like? > > E.g., if they only work for consecutive registers, then gcc can only > match them after register allocation, but there is no appropriate > optimization pass to do so. In that case you are going to have write > peepholes for them, and you're going to have to generate them > explicitly in your backend's prologue and epilogue generation. > > > Ian > > Thank you for replying. According to my understanding, it works for consecutive registers as I am just declaring an array in my test case. To be specific, how do I get "rodata" section in assembly generated that contains only the data(integers) in the array declared,, because when I compile with other already build processors, it creates this rodata section and then using a single instruction stores all the elements of array in memory. noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p26775192.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2009-12-14 12:40 ` noeljohn @ 2009-12-16 1:18 ` Ian Lance Taylor 2010-01-12 6:56 ` noeljohn 2010-01-28 6:16 ` noeljohn 0 siblings, 2 replies; 17+ messages in thread From: Ian Lance Taylor @ 2009-12-16 1:18 UTC (permalink / raw) To: noeljohn; +Cc: gcc-help noeljohn <noel.daniel@gmx.com> writes: > Ian Lance Taylor-3 wrote: >> >> noeljohn <noel.daniel@gmx.com> writes: >> >>> I am working on a new risc machine. I have defined the >>> "store_multiple" and "load_multiple" pattern and the system builds fine. >>> But >>> when I compile the C program for a declared integer array, the >>> "store_multiple" and "load_multiple" patterns are not getting emitted. >>> Instead simple load and store patterns are emitted multiple times. As per >>> actual working store_multiple and load_multiple patters need to get >>> emitted. >> >> What do your store_multiple and load_multiple insns look like? >> >> E.g., if they only work for consecutive registers, then gcc can only >> match them after register allocation, but there is no appropriate >> optimization pass to do so. In that case you are going to have write >> peepholes for them, and you're going to have to generate them >> explicitly in your backend's prologue and epilogue generation. >> >> >> Ian >> >> > > > Thank you for replying. > According to my understanding, it works for consecutive registers as I am > just declaring an array in my test case. To be specific, how do I get > "rodata" section in assembly generated that contains only the data(integers) > in the array declared,, because when I compile with other already build > processors, it creates this rodata section and then using a single > instruction stores all the elements of array in memory. It's difficult to say how this works without more information. Is the array being treated as a vector? It's easy enough to get an rodata section in your assembly code, that should happen more or less automatically if you write const int ai[] = { 1, 2, 3, 4 }; I don't know how to load that using a load-multiple instruction unless it is being treated as a vector. Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2009-12-16 1:18 ` Ian Lance Taylor @ 2010-01-12 6:56 ` noeljohn 2010-01-28 6:16 ` noeljohn 1 sibling, 0 replies; 17+ messages in thread From: noeljohn @ 2010-01-12 6:56 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> Ian Lance Taylor-3 wrote: >>> >>> noeljohn <noel.daniel@gmx.com> writes: >>> >>>> I am working on a new risc machine. I have defined the >>>> "store_multiple" and "load_multiple" pattern and the system builds >>>> fine. >>>> But >>>> when I compile the C program for a declared integer array, the >>>> "store_multiple" and "load_multiple" patterns are not getting emitted. >>>> Instead simple load and store patterns are emitted multiple times. As >>>> per >>>> actual working store_multiple and load_multiple patters need to get >>>> emitted. >>> >>> What do your store_multiple and load_multiple insns look like? >>> >>> E.g., if they only work for consecutive registers, then gcc can only >>> match them after register allocation, but there is no appropriate >>> optimization pass to do so. In that case you are going to have write >>> peepholes for them, and you're going to have to generate them >>> explicitly in your backend's prologue and epilogue generation. >>> >>> >>> Ian >>> >>> >> >> >> Thank you for replying. >> According to my understanding, it works for consecutive registers as I am >> just declaring an array in my test case. To be specific, how do I get >> "rodata" section in assembly generated that contains only the >> data(integers) >> in the array declared,, because when I compile with other already build >> processors, it creates this rodata section and then using a single >> instruction stores all the elements of array in memory. > > > It's difficult to say how this works without more information. Is the > array being treated as a vector? > > It's easy enough to get an rodata section in your assembly code, that > should happen more or less automatically if you write > const int ai[] = { 1, 2, 3, 4 }; > I don't know how to load that using a load-multiple instruction unless > it is being treated as a vector. > > Ian > > Hello Sir, The array as I have seen is not being treated as a vector. What it does is it directly loads the integer array data into the stack. This is normally done for processors which does not have a support for multiple loading and storing of words. noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p27123358.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2009-12-16 1:18 ` Ian Lance Taylor 2010-01-12 6:56 ` noeljohn @ 2010-01-28 6:16 ` noeljohn 2010-01-28 6:55 ` Ian Lance Taylor 1 sibling, 1 reply; 17+ messages in thread From: noeljohn @ 2010-01-28 6:16 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> Ian Lance Taylor-3 wrote: >>> >>> noeljohn <noel.daniel@gmx.com> writes: >>> >>>> I am working on a new risc machine. I have defined the >>>> "store_multiple" and "load_multiple" pattern and the system builds >>>> fine. >>>> But >>>> when I compile the C program for a declared integer array, the >>>> "store_multiple" and "load_multiple" patterns are not getting emitted. >>>> Instead simple load and store patterns are emitted multiple times. As >>>> per >>>> actual working store_multiple and load_multiple patters need to get >>>> emitted. >>> >>> What do your store_multiple and load_multiple insns look like? >>> >>> E.g., if they only work for consecutive registers, then gcc can only >>> match them after register allocation, but there is no appropriate >>> optimization pass to do so. In that case you are going to have write >>> peepholes for them, and you're going to have to generate them >>> explicitly in your backend's prologue and epilogue generation. >>> >>> >>> Ian >>> >>> >> >> >> Thank you for replying. >> According to my understanding, it works for consecutive registers as I am >> just declaring an array in my test case. To be specific, how do I get >> "rodata" section in assembly generated that contains only the >> data(integers) >> in the array declared,, because when I compile with other already build >> processors, it creates this rodata section and then using a single >> instruction stores all the elements of array in memory. > > > It's difficult to say how this works without more information. Is the > array being treated as a vector? > > It's easy enough to get an rodata section in your assembly code, that > should happen more or less automatically if you write > const int ai[] = { 1, 2, 3, 4 }; > I don't know how to load that using a load-multiple instruction unless > it is being treated as a vector. > > Ian > > Hello Sir, The array as I have seen is not being treated as a vector. What it does is it directly loads the integer array data into the stack. This is normally done for processors which does not have a support for multiple loading and storing of words. Is there any way by which we can convey gcc through macros that our architecture supports this multiple loading and storing facility? Awaiting for your help. noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p27351551.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-01-28 6:16 ` noeljohn @ 2010-01-28 6:55 ` Ian Lance Taylor 2010-01-29 9:49 ` noeljohn 0 siblings, 1 reply; 17+ messages in thread From: Ian Lance Taylor @ 2010-01-28 6:55 UTC (permalink / raw) To: noeljohn; +Cc: gcc-help noeljohn <noel.daniel@gmx.com> writes: > The array as I have seen is not being treated as a vector. What it does is > it directly loads the integer array data into the stack. This is normally > done for processors which does not have a support for multiple loading and > storing of words. Is there any way by which we can convey gcc through macros > that our architecture supports this multiple loading and storing facility? I'm sorry, I don't understand what you mean. What specific instruction are you trying to generate, and what precisely does it do? When exact C code would you write that you would expect to generate this instruction? Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-01-28 6:55 ` Ian Lance Taylor @ 2010-01-29 9:49 ` noeljohn 2010-01-29 15:25 ` Ian Lance Taylor 0 siblings, 1 reply; 17+ messages in thread From: noeljohn @ 2010-01-29 9:49 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> The array as I have seen is not being treated as a vector. What it does >> is >> it directly loads the integer array data into the stack. This is normally >> done for processors which does not have a support for multiple loading >> and >> storing of words. Is there any way by which we can convey gcc through >> macros >> that our architecture supports this multiple loading and storing >> facility? > > I'm sorry, I don't understand what you mean. What specific > instruction are you trying to generate, and what precisely does it do? > When exact C code would you write that you would expect to generate > this instruction? > > Ian > > Hello Sir, The actual problem is that the array contents are not put in a separate data section we would see in .s file. Suppose we take a arm processor or rs6000 processor, a separate section will be created in which the array contents will be stored and then these array contents are loaded into the stack. I want this data section to be created. How should I go forward ? noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p27369674.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-01-29 9:49 ` noeljohn @ 2010-01-29 15:25 ` Ian Lance Taylor 2010-02-01 10:12 ` noeljohn 0 siblings, 1 reply; 17+ messages in thread From: Ian Lance Taylor @ 2010-01-29 15:25 UTC (permalink / raw) To: noeljohn; +Cc: gcc-help noeljohn <noel.daniel@gmx.com> writes: > Ian Lance Taylor-3 wrote: >> >> noeljohn <noel.daniel@gmx.com> writes: >> >>> The array as I have seen is not being treated as a vector. What it does >>> is >>> it directly loads the integer array data into the stack. This is normally >>> done for processors which does not have a support for multiple loading >>> and >>> storing of words. Is there any way by which we can convey gcc through >>> macros >>> that our architecture supports this multiple loading and storing >>> facility? >> >> I'm sorry, I don't understand what you mean. What specific >> instruction are you trying to generate, and what precisely does it do? >> When exact C code would you write that you would expect to generate >> this instruction? >> >> Ian >> >> > > Hello Sir, > The actual problem is that the array contents are not put in a separate > data section we would see in .s file. Suppose we take a arm processor or > rs6000 processor, a separate section will be created in which the array > contents will be stored and then these array contents are loaded into the > stack. I want this data section to be created. How should I go forward ? Give us an example. Show us some source code. Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-01-29 15:25 ` Ian Lance Taylor @ 2010-02-01 10:12 ` noeljohn 2010-02-01 22:19 ` Ian Lance Taylor 0 siblings, 1 reply; 17+ messages in thread From: noeljohn @ 2010-02-01 10:12 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> Ian Lance Taylor-3 wrote: >>> >>> noeljohn <noel.daniel@gmx.com> writes: >>> >>>> The array as I have seen is not being treated as a vector. What it >>>> does >>>> is >>>> it directly loads the integer array data into the stack. This is >>>> normally >>>> done for processors which does not have a support for multiple loading >>>> and >>>> storing of words. Is there any way by which we can convey gcc through >>>> macros >>>> that our architecture supports this multiple loading and storing >>>> facility? >>> >>> I'm sorry, I don't understand what you mean. What specific >>> instruction are you trying to generate, and what precisely does it do? >>> When exact C code would you write that you would expect to generate >>> this instruction? >>> >>> Ian >>> >>> >> >> Hello Sir, >> The actual problem is that the array contents are not put in a >> separate >> data section we would see in .s file. Suppose we take a arm processor or >> rs6000 processor, a separate section will be created in which the array >> contents will be stored and then these array contents are loaded into the >> stack. I want this data section to be created. How should I go forward ? > > > Give us an example. Show us some source code. > > Ian > > .file "1234.c" .section .rodata .align 2 .type C.0.1175, %object .size C.0.1175, 20 C.0.1175: .word 6 .word 9 .word 5 .word 6 .word 8 .text .align 2 .global main .type main, %function main: @ args = 0, pretend = 0, frame = 20 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp stmfd sp!, {r4, fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #20 ldr r3, .L3 sub r4, fp, #36 mov ip, r3 ldmia ip!, {r0, r1, r2, r3} stmia r4!, {r0, r1, r2, r3} ldr r3, [ip, #0] str r3, [r4, #0] ldr r2, [fp, #-28] ldr r3, [fp, #-20] and r3, r2, r3 str r3, [fp, #-24] sub sp, fp, #16 ldmfd sp, {r4, fp, sp, pc} .L4: .align 2 .L3: .word C.0.1175 .size main, .-main .ident "GCC: (GNU) 4.3.0" This is the arm assembly for the c program: void main() { int a[5]={6,9,5,6,8}; a[3]=a[2] & a[4]; } The section below is the one which needs to be generated for the machine which I am working for. .section .rodata .align 2 .type C.0.1175, %object .size C.0.1175, 20 C.0.1175: .word 6 .word 9 .word 5 .word 6 .word 8 Similar section is seen for the assembly generated by the machine powerpc. How can it be generated? noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p27401949.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-02-01 10:12 ` noeljohn @ 2010-02-01 22:19 ` Ian Lance Taylor 2010-02-02 13:05 ` noeljohn 2010-02-23 8:03 ` noeljohn 0 siblings, 2 replies; 17+ messages in thread From: Ian Lance Taylor @ 2010-02-01 22:19 UTC (permalink / raw) To: noeljohn; +Cc: gcc-help noeljohn <noel.daniel@gmx.com> writes: > This is the arm assembly for the c program: > void main() > > { > > int a[5]={6,9,5,6,8}; > > a[3]=a[2] & a[4]; > > } > > The section below is the one which needs to be generated for the machine > which I am working for. > > .section .rodata > .align 2 > .type C.0.1175, %object > .size C.0.1175, 20 > C.0.1175: > .word 6 > .word 9 > .word 5 > .word 6 > .word 8 > > Similar section is seen for the assembly generated by the machine powerpc. > How can it be generated? Thanks for the example. This is controlled by the cost of moving the structure piece by piece. See MOVE_MAX, MAX_MOVE_MAX, MOVE_MAX_PIECES, and MOVE_BY_PIECES_P in the internals manual. Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-02-01 22:19 ` Ian Lance Taylor @ 2010-02-02 13:05 ` noeljohn 2010-02-23 8:03 ` noeljohn 1 sibling, 0 replies; 17+ messages in thread From: noeljohn @ 2010-02-02 13:05 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> This is the arm assembly for the c program: >> void main() >> >> { >> >> int a[5]={6,9,5,6,8}; >> >> a[3]=a[2] & a[4]; >> >> } >> >> The section below is the one which needs to be generated for the machine >> which I am working for. >> >> .section .rodata >> .align 2 >> .type C.0.1175, %object >> .size C.0.1175, 20 >> C.0.1175: >> .word 6 >> .word 9 >> .word 5 >> .word 6 >> .word 8 >> >> Similar section is seen for the assembly generated by the machine >> powerpc. >> How can it be generated? > > Thanks for the example. This is controlled by the cost of moving the > structure piece by piece. See MOVE_MAX, MAX_MOVE_MAX, > MOVE_MAX_PIECES, and MOVE_BY_PIECES_P in the internals manual. > > Ian > > Thank you very much Sir. I will work on it and get back to you soon. noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p27419797.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-02-01 22:19 ` Ian Lance Taylor 2010-02-02 13:05 ` noeljohn @ 2010-02-23 8:03 ` noeljohn 2010-02-23 18:30 ` Ian Lance Taylor 1 sibling, 1 reply; 17+ messages in thread From: noeljohn @ 2010-02-23 8:03 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> This is the arm assembly for the c program: >> void main() >> >> { >> >> int a[5]={6,9,5,6,8}; >> >> a[3]=a[2] & a[4]; >> >> } >> >> The section below is the one which needs to be generated for the machine >> which I am working for. >> >> .section .rodata >> .align 2 >> .type C.0.1175, %object >> .size C.0.1175, 20 >> C.0.1175: >> .word 6 >> .word 9 >> .word 5 >> .word 6 >> .word 8 >> >> Similar section is seen for the assembly generated by the machine >> powerpc. >> How can it be generated? > > Thanks for the example. This is controlled by the cost of moving the > structure piece by piece. See MOVE_MAX, MAX_MOVE_MAX, > MOVE_MAX_PIECES, and MOVE_BY_PIECES_P in the internals manual. > > Ian > > Hello Sir, I introduced MOVE_MAX and MOVE_RATIO macros. With this the gcc build is successful. But when I compile the .c file, I get a segmentation fault. Are there any docs which will help in knowing the respective macros required for the rodata section emission ? Awaiting for your help. noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p27699239.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-02-23 8:03 ` noeljohn @ 2010-02-23 18:30 ` Ian Lance Taylor 2010-03-01 10:51 ` noeljohn 2010-03-08 14:02 ` noeljohn 0 siblings, 2 replies; 17+ messages in thread From: Ian Lance Taylor @ 2010-02-23 18:30 UTC (permalink / raw) To: noeljohn; +Cc: gcc-help noeljohn <noel.daniel@gmx.com> writes: > I introduced MOVE_MAX and MOVE_RATIO macros. With this the gcc build is > successful. But when I compile the .c file, I get a segmentation fault. > Are there any docs which will help in knowing the respective macros > required for the rodata section emission ? Awaiting for your help. The gcc internal documentation is pretty good on this kind of thing. http://gcc.gnu.org/onlinedocs/gccint/ Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-02-23 18:30 ` Ian Lance Taylor @ 2010-03-01 10:51 ` noeljohn 2010-03-08 14:02 ` noeljohn 1 sibling, 0 replies; 17+ messages in thread From: noeljohn @ 2010-03-01 10:51 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> I introduced MOVE_MAX and MOVE_RATIO macros. With this the gcc build >> is >> successful. But when I compile the .c file, I get a segmentation fault. >> Are there any docs which will help in knowing the respective macros >> required for the rodata section emission ? Awaiting for your help. > > The gcc internal documentation is pretty good on this kind of thing. > > http://gcc.gnu.org/onlinedocs/gccint/ > > Ian > > Hello Sir, The rodata section is finally getting emitted. Thank you very much for your help. noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p27742055.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-02-23 18:30 ` Ian Lance Taylor 2010-03-01 10:51 ` noeljohn @ 2010-03-08 14:02 ` noeljohn 2010-03-08 20:27 ` Ian Lance Taylor 1 sibling, 1 reply; 17+ messages in thread From: noeljohn @ 2010-03-08 14:02 UTC (permalink / raw) To: gcc-help Ian Lance Taylor-3 wrote: > > noeljohn <noel.daniel@gmx.com> writes: > >> I introduced MOVE_MAX and MOVE_RATIO macros. With this the gcc build >> is >> successful. But when I compile the .c file, I get a segmentation fault. >> Are there any docs which will help in knowing the respective macros >> required for the rodata section emission ? Awaiting for your help. > > The gcc internal documentation is pretty good on this kind of thing. > > http://gcc.gnu.org/onlinedocs/gccint/ > > Ian > > Hello Sir, As in the assembly code as I had posted in one the previous posts, we see that that instructions stmia and ldmia are emitted to get the contents from the rodata section to stack. But in my case even though I have defined the patterns for multiple store and multiple load, in which case contents could be loaded and stored continuously, individual store and load instructions are getting a number of times. But I wanted the multiple load and store instructions to get emitted. Please could you help me out of this ? Awaiting for your help. Thank you. noeljohn -- View this message in context: http://old.nabble.com/Emission-of-store_multiple-and-load_multiple-patterns-tp26739724p27819965.html Sent from the gcc - Help mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Emission of store_multiple and load_multiple patterns 2010-03-08 14:02 ` noeljohn @ 2010-03-08 20:27 ` Ian Lance Taylor 0 siblings, 0 replies; 17+ messages in thread From: Ian Lance Taylor @ 2010-03-08 20:27 UTC (permalink / raw) To: noeljohn; +Cc: gcc-help noeljohn <noel.daniel@gmx.com> writes: > As in the assembly code as I had posted in one the previous posts, we > see that that instructions stmia and ldmia are emitted to get the contents > from the rodata section to stack. But in my case even though I have defined > the patterns for multiple store and multiple load, in which case contents > could be loaded and stored continuously, individual store and load > instructions are getting a number of times. But I wanted the multiple load > and store instructions to get emitted. Please could you help me out of this > ? I don't know. You would need to provide a lot more information before I could venture a suggestion. But I don't think it would be useful for you to provide all that information. The gcc-help mailing list works best when you ask a specific question. I would encourage you to use your own debugging skills first to narrow down what is happening to the point which you find hard to understand. Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2010-03-08 20:27 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-12-11 9:31 Emission of store_multiple and load_multiple patterns noeljohn 2009-12-12 2:21 ` Ian Lance Taylor 2009-12-14 12:40 ` noeljohn 2009-12-16 1:18 ` Ian Lance Taylor 2010-01-12 6:56 ` noeljohn 2010-01-28 6:16 ` noeljohn 2010-01-28 6:55 ` Ian Lance Taylor 2010-01-29 9:49 ` noeljohn 2010-01-29 15:25 ` Ian Lance Taylor 2010-02-01 10:12 ` noeljohn 2010-02-01 22:19 ` Ian Lance Taylor 2010-02-02 13:05 ` noeljohn 2010-02-23 8:03 ` noeljohn 2010-02-23 18:30 ` Ian Lance Taylor 2010-03-01 10:51 ` noeljohn 2010-03-08 14:02 ` noeljohn 2010-03-08 20:27 ` Ian Lance Taylor
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).