Re: hard typdef - proposal - I know it's not in the standard
On 28 January 2013 06:18, Alec Teal wrote: > the very > nature of just putting the word "hard" before a typedef is something I find > appealing I've already explained why that's not likely to be acceptable, because identifiers are allowed before 'typedef' and it would be ambiguous. You need a different syntax. > That is why I'd want both, but at least in my mind n3515 would be nearer to > "if I really wanted it I could use classes" than the hard-typedef. I've already said N3515 is not about classes. It can be used to define strong typedefs for classes, which is needed because most types in real C++ programs are class types, but it also works for scalar types.
Re: Initial Stack Padding?
Thanks Ian, On Mon, Jan 28, 2013 at 4:32 PM, Ian Lance Taylor wrote: > On Sat, Jan 26, 2013 at 5:44 PM, Matt Davis wrote: >> This question is similar to my last; however, I think it provides a >> bit more clarity as to how I am obtaining offsets from the frame >> pointer. I have an RTL pass that is processed after expand passes. I >> keep track of a list of stack allocated variables. For each VAR_DECL, >> I obtain the DECL_RTL rtx. Since these variables are local, the RTL >> expression reflects an offset from the stack frame pointer. For >> instance, the variable 'matt': >> >> (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) >> (const_int -8 [0xfff8])) [0 matt+0 S8 A64]) >> >> I interpret this as being -8 bytes away from the frame pointer, when >> the function 'matt' has scope in is executing. Since 'matt' is a >> pointer, and the stack grows downward (x86), and this is a 64-bit >> machine, the contents of 'matt' end at the frame pointer and span 8 >> bytes below the frame pointer to where the first byte of 'matt' >> begins. This is fine in some cases, but if I were to rewrite the >> source and add a few more variables. It seems that there might be a >> few words of padding before the data for the first variable from the >> stack pointer begins. If I were to add a 4 byte integer to this >> function, 'matt' would still be declared in RTL as above, but instead >> of really being -8 it is actually -32. Where do the 24 bytes of >> padding between the frame pointer and the last byte of 'matt' come >> from? Further, how can I find this initial padding offset at compile >> time? I originally thought that the offset in the rtx, as above, >> would reflect this stack realignment, but it appears not to. > > The frame pointer in RTL is a notional frame pointer. It need not > correspond to any actual hardware register. In fact most processors > distinguish the soft frame pointer from the hard frame pointer, and > most permit eliminating the frame pointer entirely and just using the > stack pointer. > > I'm not sure how to answer the rest of your paragraph because I'm not > sure which frame pointer you are talking about. E.g., which one do > you mean when you mention -32? If you are talking about x86_64 then I > guess you are seeing the fact that the stack must be aligned according > to -mpreferred-stack-boundary, which defaults to a 16 byte boundary. To clarify, the RTL tells me that the frame pointer is -8 bytes from the notional RTL frame pointer. The -32 is the actual distance from the the hardware register at runtime on my x86_64. Actually, looking at my test now, the RTL tells me that the 'matt' pointer -8 bytes from RTL's notional frame pointer, and the next integer stack variable 'x' is -12 away. At runtime 'matt' is in fact -24 bytes away and 'x' is -28. So there are two words between the actual hardware frame pointer and the data for the first local on the stack. So my hunch was right, it does seem to be an effect of stack alignment. If I were to look at the final RTL dump, I do not see an -8 as what the VAR_DECL's RTL data told me, but I do see in the final RTL dump the -24, which is what I expect: (insn 5 2 6 4 (set (mem/f/c:DI (plus:DI (reg/f:DI 6 bp) (const_int -24 [0xffe8])) [0 matt+0 S8 A64]) (const_int 0 [0])) test.go:4 62 {*movdi_internal_rex64} (nil)) It seems that I have made a bad assumption; that the notional RTL soft frame pointer represents the stack alignment. Anyways, I'm hoping that there is a way, during my RTL pass using just the VAR_DECL, that I can determine where the local is from the frame pointer. I just need to figure out how the RTL block just above is calculated, and use that offset in my RTL pass instead of the data in VAR_DECL's RTL node. Thanks again Ian for your reply. -Matt
Re: hard typdef - proposal - I know it's not in the standard
On 28/01/13 10:41, Jonathan Wakely wrote: On 28 January 2013 06:18, Alec Teal wrote: the very nature of just putting the word "hard" before a typedef is something I find appealing I've already explained why that's not likely to be acceptable, because identifiers are allowed before 'typedef' and it would be ambiguous. You need a different syntax. That is why I'd want both, but at least in my mind n3515 would be nearer to "if I really wanted it I could use classes" than the hard-typedef. I've already said N3515 is not about classes. You keep missing the point of what I mean by "like classes" I mean in terms of achieving the result, PLEASE think it though. It can be used to define strong typedefs for classes, which is needed because most types in real C++ programs are class types, but it also works for scalar types.
Re: hard typdef - proposal - I know it's not in the standard
On 1/28/2013 6:48 AM, Alec Teal wrote: On 28/01/13 10:41, Jonathan Wakely wrote: On 28 January 2013 06:18, Alec Teal wrote: the very nature of just putting the word "hard" before a typedef is something I find appealing I've already explained why that's not likely to be acceptable, because identifiers are allowed before 'typedef' and it would be ambiguous. You need a different syntax. That is why I'd want both, but at least in my mind n3515 would be nearer to "if I really wanted it I could use classes" than the hard-typedef. I've already said N3515 is not about classes. You keep missing the point of what I mean by "like classes" I mean in terms of achieving the result, PLEASE think it though. I have read this thread, and I see ZERO chance of this proposal being accepted for inclusion into gcc at the current time. Feel free to create your own version of gcc that has this feature (that after all is what freedom in software is about) and promote it elsewhere but it is really a waste of time to debate it further on this list. The burden for non-standard language extensions in gcc is very high. The current proposal is ambiguous and flawed, and in any case does not begin to meet this high standard. I think this thread should be allowed to RIP at this stage.
Bug repositories
Hello, I'm a master student and I'm writing my thesis on bug triaging in open source project and I wondering if I can access to a big part of the bug repository, if I can, how to do it ? Writing a crawler/parser for bugzilla or something else? I need 5 to 8 years of development. Thanks a lot, Igor K.
Re: vec.h vs. --enable-gather-detailed-mem-stats
On Sun, Jan 27, 2013 at 7:09 AM, Steven Bosscher wrote: > Is this a known issue? No, thanks for the report. I'll try to see what's going on (though you may need to ping me in a few days). Diego.
Re: Bug repositories
On Mon, Jan 28, 2013 at 6:48 AM, Igor Kovacevic wrote: > > I'm a master student and I'm writing my thesis on bug triaging in open > source project and I wondering if I can access to a big part of the > bug repository, > if I can, how to do it ? > Writing a crawler/parser for bugzilla or something else? > I need 5 to 8 years of development. As you know, we use bugzilla for GCC. I don't know what facilities bugzilla provides for analysis of the bug database. That would be something to ask the bugzilla developers about. I'm willing to provide you with a dump of gcc's bugzilla database if you can give me the exact command to run. It's fine to crawl the bugzilla web pages as long as you throttle your crawler. If you download pages as fast as you can we will wind up blocking you. Ian
Re: gcc : c++11 : full support : eta?
On 01/23/2013 01:48 AM, Franz Fehringer wrote: What does this mean for the Concurrency section, it has 8xNo at the moment? I need to go back over that section, but I think it's just inaccurate. Jason
Re: Bug repositories
(Igor jumped into the Bugzilla developers IRC channel, so that's why I heard about this thread.) Ian said: "I'm willing to provide you with a dump of gcc's bugzilla database if you can give me the exact command to run." Sorry, but I have to object! It's not ok to give anyone a plain dump of the GCC Bugzilla database for studies or any other reason without some sanity check. The Bugzilla database contains all the user account passwords and preferences, as well as group permissions. Such a copy of the DB would give the possibility to try to crack the passwords locally, though the encryption is supposed to be very secure. This means that a local access to the DB allows one to skip throttling when someone starts typing the wrong password again and again, decreasing the time needed to crack passwords. Moreover, having access to group permissions means to be able to know who are admins and to try to abuse these accounts in GCC Bugzilla itself. This is a security breach. Bugzilla offers no special tools to generate a sanitized copy of the DB, so one shouldn't try to create a dump of the DB and spread it without a very good knowledge of Bugzilla internals. LpSolit
Aspectos Criticos a Considerar de los Salarios Caidos
Aspectos Críticos a Considerar de los SALARIOS CAÍDOS ¿Dónde se llevará a cabo? Lugar: Su computadora. Fecha: 11 de Febrero de 2013. Duración: 3 Horas. Horario: De 10:00 a.m a 1:00 p.m. (Hora del Centro de México). Toda empresa u organización en México se encuentra inmersa en un trascendental cambio impuesto por la Ley Federal del Trabajo. La limitación de los salarios caídos vislumbra un nuevo panorama referente a los conflictos de las relaciones laborales, por lo que en caso de una resolución desfavorable al empleador se deberá desembolsar hasta un periodo máximo de 12 meses de salarios vencidos computados desde la fecha de despido. Conozca las opciones que el trabajador tiene ante sí en caso de acudir a la Junta de Conciliación y Arbitraje por "despido injustificado"; cómo evitar pagar el tope de los salarios caídos; cómo se calculan los intereses a cubrir en caso de que el juicio se prolongue más de 12 meses; cuándo los salarios caídos dejan de ser válidos; multas, sanciones y todo lo referente para garantizar su estabilidad empresarial. Adquiera el folleto completo y sin compromiso, solo responda este correo con asunto "Folleto Salarios Caidos" y a la brevedad lo recibirá! o llámenos sin costo alguno al 01800-212-93.93 Reciba un muy cordial saludo! Lic. Carolina Moo Aldana. Líder de Proyectos Para darte de baja g...@gnu.org y no recibir ningún tema de nuestra empresa, envíe un correo con asunto Nomasinfo
Re: Bug repositories
On Mon, Jan 28, 2013 at 11:51 AM, Frédéric Buclin wrote: > (Igor jumped into the Bugzilla developers IRC channel, so that's why I > heard about this thread.) > > Ian said: > > "I'm willing to provide you with a dump of gcc's bugzilla database if > you can give me the exact command to run." > > > Sorry, but I have to object! It's not ok to give anyone a plain dump of > the GCC Bugzilla database for studies or any other reason without some > sanity check. The Bugzilla database contains all the user account > passwords and preferences, as well as group permissions. Such a copy of > the DB would give the possibility to try to crack the passwords locally, > though the encryption is supposed to be very secure. This means that a > local access to the DB allows one to skip throttling when someone starts > typing the wrong password again and again, decreasing the time needed to > crack passwords. Moreover, having access to group permissions means to > be able to know who are admins and to try to abuse these accounts in GCC > Bugzilla itself. This is a security breach. > > Bugzilla offers no special tools to generate a sanitized copy of the DB, > so one shouldn't try to create a dump of the DB and spread it without a > very good knowledge of Bugzilla internals. Yes, of course it would not be appropriate to hand out any user information. If bugzilla doesn't have a way to dump just the bug info then I guess crawling is the only way. Ian
Loading Gimple from file
is there any function allows loading Gimple output from file and create the internal Gimple structure ? -- Chaddy Huussin Vazquez , chas...@ceis.cujae.edu.cu Superior Polytechnic Institute ‘Jose Antonio Echeverrıa’ Informatics Engineering Faculty 48 Aniversario del Instituto Superior Politecnico Jose Antonio Echeverria, Cujae Una obra de la Revolucion Cubana | 2 de diciembre de 1964 | http://cujae.edu.cu Consulte la enciclopedia colaborativa cubana. http://www.ecured.cu
Re: Loading Gimple from file
On Mon, Jan 28, 2013 at 1:46 PM, Chassin wrote: > is there any function allows loading Gimple output from file and create the > internal Gimple structure ? Not to my knowledge, but see http://gcc.gnu.org/wiki/GimpleFrontEnd . Ian
Re: Loading Gimple from file
On 01/28/2013 05:25 PM, Ian Lance Taylor wrote: On Mon, Jan 28, 2013 at 1:46 PM, Chassin wrote: is there any function allows loading Gimple output from file and create the internal Gimple structure ? Not to my knowledge, but see http://gcc.gnu.org/wiki/GimpleFrontEnd . Ian Thnx Ian i was looking for something like that ;) -- Chaddy Huussin Vazquez , chas...@ceis.cujae.edu.cu Superior Polytechnic Institute ‘Jose Antonio Echeverrıa’ Informatics Engineering Faculty 48 Aniversario del Instituto Superior Politecnico Jose Antonio Echeverria, Cujae Una obra de la Revolucion Cubana | 2 de diciembre de 1964 | http://cujae.edu.cu Consulte la enciclopedia colaborativa cubana. http://www.ecured.cu
gcc 4.7.3 plans?
There have been quite a few fixes on the 4.7 branch since 4.7.2 was released 4 months ago and several of the remaining regression bugs have fixes in trunk. What are the plans for 4.7.3? thanks, -Kenny
problem inserting new function to cgraph
Hi again , this time i am trying to clone a function then insert it with new name sample code struct cgraph_node *old_node = util_get_cgnode_by_name((char *)user_data); struct cgraph_node *new_node ; tree old_decl = old_node->decl; tree new_decl = copy_node(old_decl); // Changing the name DECL_STRUCT_FUNCTION (new_decl) = NULL; DECL_NAME (new_decl) = clone_function_name (old_decl, "_X"); SET_DECL_ASSEMBLER_NAME (new_decl, DECL_NAME (new_decl)); SET_DECL_RTL (new_decl, NULL); new_node = cgraph_clone_node (old_node, new_decl, old_node->count,CGRAPH_FREQ_BASE, 0, false,NULL); cgraph_add_new_function(new_decl,false); this is hooked to PLUGIN_ALL_IPA_PASSES_END , but its raises an error in the line ( cgraph_add_new_function ) , why ? -- Chaddy Huussin Vazquez , chas...@ceis.cujae.edu.cu Superior Polytechnic Institute ‘Jose Antonio Echeverrıa’ Informatics Engineering Faculty 48 Aniversario del Instituto Superior Politecnico Jose Antonio Echeverria, Cujae Una obra de la Revolucion Cubana | 2 de diciembre de 1964 | http://cujae.edu.cu Consulte la enciclopedia colaborativa cubana. http://www.ecured.cu