RE: [Open64-devel] addr_saved & addr_passed.
Brought to you by:
ributzka,
suneeljain
From: Chan, S. C <sun...@in...> - 2003-02-13 01:04:01
|
I can give definitive answer for question #2 and #3. For #1, either = Raymond, Shin or Wilson could give you more definitive answer. For #2, register is considered a hint by this compiler. I.e. it was = ignored since it's believed that GRA can do a better job of it. This has = been the view consistently held even back at Mips days with the ucode = compiler. For #3, the code should be in wn_lower.cxx Sun -----Original Message----- From: Peng Zhao [mailto:pen...@cs...] Sent: Wednesday, February 12, 2003 4:37 PM To: open64 Subject: [Open64-devel] addr_saved & addr_passed. Hi, 1. I want to know when my optimization happens in the earlier phase=20 of BE, should I update some properties of STs that I manipulated. E.g. = If=20 some symbols are passed to another new function by address, should I=20 modify their flags with addr_saved or addr_passed? The reason I asked about it is that I am afraid that later phases=20 will need these flags set correctly to work properly. Or they will=20 re-calculate these information by themselves thus I donot need to worry=20 about it. =09 2. How the register variables are handled in a compiler? I noticed=20 that even a variable is declared as register, in WHIRL three, its = Storage=20 class is not register. I.e. you cannot tell whether the variable is=20 register variable or not from the whirl symbol table. How I can tell that a symbol is register variable in whirl=20 representation?=20 Does the declaration of a variable as register variable only take=20 effect in register allocation?=20 What will happen when a register variable's address is taken or=20 passed to another PU? I can see a warning message spit out during the = FE.=20 Will it cause the "register" lose the meaning? or the variable still=20 occupy a register and its memory location will contains some old values=20 that causes passing its memory address meaningless? 3. I noticed that there is someting mentioned in the ORC2.0 slides.=20 It is about switch-case optimization, which says "hoist most frequent=20 cases outside of switch case". However, I cannot find related codes. Can = somebody give me a pointer?=20 4. I am also interested in implementing something that is machine=20 specific, e.g. I make some code that goto the caller's label or = rewinding=20 2 or more levels of stack (i.e. directly return to the caller's caller). Can somebody give me some idea about that? Thanks. Peng --=20 | | | Peng Zhao pen...@cs... )_) )_) )_) http://www.cs.ualberta.ca/~pengzhao )___))___))___) Phone: 1-780-492-3725 )____)____)_____)\\ Fax: 1-780-492-1071 ________|____|____|____\\\__ Lab: CSC-251 -------\ /--------- ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Open64-devel mailing list Ope...@li... https://lists.sourceforge.net/lists/listinfo/open64-devel |