56 votes 56 votes Consider the expression $(a-1) * (((b+c)/3)+d)$. Let $X$ be the minimum number of registers required by an optimal code generation (without any register spill) algorithm for a load/store architecture, in which only load and store instructions can have memory operands and arithmetic instructions can have only register or immediate operands. The value of $X$ is _____________ . Compiler Design gatecse-2017-set1 compiler-design register-allocation normal numerical-answers + – Arjun asked Feb 14, 2017 • edited Jan 14, 2019 by Sukanya Das Arjun 19.3k views answer comment Share Follow See all 14 Comments See all 14 14 Comments reply Show 11 previous comments Thadymademe commented Oct 23, 2022 reply Follow Share @svas7246 The main advantage of storing the result as register is they are stored in CPU memory which is accessed very fast compared to RAM. This makes the program to get executed faster. 1 votes 1 votes Pranavpurkar commented Nov 29, 2022 reply Follow Share @svas7246 If intermediate result is stored in memory then we don’t need an additional register to store it and it minimizes the registers used. 2 votes 2 votes Ray Tomlinson commented Jan 15 i edited by Ray Tomlinson Jan 26 reply Follow Share Good Readwhat the question want to tell by these 2 lines –only load and store instructions can have memory operands -> It means that during load and store instruction we can use variable name(memory operands) on RHS (Just to understand in easy language )arithmetic instructions can have only register or immediate operands->.means whenever we perform arithmetic operation then we need to use only register(the register on which the memory operands are stored or loaded ) as a operand OR Immediate Operands(constants) as a operand . 1 votes 1 votes Please log in or register to add a comment.
Best answer 89 votes 89 votes Load $R1,b$ Load $R2,c$ ADD $R1,R2$ Div $R1,3$ Load $R2,d$ Add $R1,R2$ Load $R2,a$ Sub $R2,1$ Mul $R2,R1$ hence minimum $2$ registers required sriv_shubham answered Feb 14, 2017 • edited Dec 12, 2017 by kenzou sriv_shubham comment Share Follow See all 19 Comments See all 19 19 Comments reply Show 16 previous comments Shaik Masthan commented Dec 14, 2018 reply Follow Share @tusharp check this link https://en.wikipedia.org/wiki/Sethi%E2%80%93Ullman_algorithm 1 votes 1 votes sanketnagrale commented Aug 19, 2020 reply Follow Share what if there was another variable in place of 1. Then would we require 3 registers? 0 votes 0 votes rupesh17 commented Oct 20, 2020 i edited by rupesh17 Nov 23, 2020 reply Follow Share @sanketnagrale ...yes 3 registers would be required...assign 1 in place of leaf node having 1…But ..I think this is correct tree according to Sethi-Ullman algo for given question ….We have to assign 1 to variables and zero if constants… @Amit Puri You have assigned zero to c variable which is wrong i think…....correct me if wrong.. For every non-constant leaf node, assign a 1 (i.e. 1 register is needed to hold the variable/field/etc.). For every constant leaf node (RHS of an operation – literals, values), assign a 0 3 votes 3 votes Please log in or register to add a comment.
26 votes 26 votes solution.. akash.dinkar12 answered Mar 31, 2017 akash.dinkar12 comment Share Follow See 1 comment See all 1 1 comment reply Himanshu Dixit commented Sep 29, 2017 reply Follow Share correct answer will be 2 1 votes 1 votes Please log in or register to add a comment.
2 votes 2 votes Answer: 2 Registers (minimum) (adding this answer to visually see what’s happening really) Let’s Construct an Expression tree – an easy way to visualize now come from bottom to top, numbered 1 to 9 (note: immediate values can be specified by CPU, hence is no need to load them into Reg and here “ $R_{i}$ ← a “ is load operation [abusive notation] ) we try to conserve as many registers as possible, we can come from anyway, left first or right first in the tree but make sure the register is free to use at that point (i.e, not holding any temporary value that we want to use in the future) Mahanth Yalla answered Jan 9 Mahanth Yalla comment Share Follow See all 0 reply Please log in or register to add a comment.