• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/23

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

23 Cards in this Set

  • Front
  • Back
  • 3rd side (hint)

Calling Convention

Caller Responsible for pushing and popping for callee's arguments


Callee responsible for pushing and poppong space for its own temporaries

Rationale of memory layout in single inheritance

For a class Child that extends Parent, a pointer of type Parent pointing at the Child still sees Parent object at the begnning

Activation Tree

Tree structure representing all of the function calls made by program on a particular expression

Depends on runtime behavior of a program; can't always be determined at compile-time

Subroutine

function, when invoked, runs to completion and returns control to the calling function

Coroutine

function, when invoked, does some amount of work, then returns control to the calling function. It can then be resumed later.

Call by Value

Parameters are copies of the values specified as arguments

Call by Reference

Parameters are pointers to values specified as parameters

TAC

Instruction/Addresses that can have at most 3 operands(like MIPS).


Allows further optimizations.

three address code IR that can be easily mapped to low level machine instructions

IR Optimizations Benefits

Make Program as fast as possible


Generate code with smaller memory footprint


Chooses Simpler Functions


Minimize function Calls

Optimizations that is Semantics Preserving

1.Eliminating Unnecessary temporary variables


2.Move Constant expression outside a loop


3.Computing the values which are statically known at compile time


4. Replacing Integer 1 by integer 2 with 0.5

IR Generation

Intermediate Representation


The final phase of the compiler front-end

GCC Architecture Hierarchy

Source Code


Ast>Generic>High Gimple>SSA>LowGimple>RTL


Machine Code

LLVM

Low Level Virtual Machine


language agnostic design

Architecture of LLVM Compiler

Run Time Environment

Set of data structure maintained at runtime to implement these high-level structures

Control Link

Pointer to function that called it, determines where to resume execution upon function return

Access Link

Pointer to activation record in which functions was created,nested functions use to determine location of variables from outer scope

Dynamic Dispatch

Calling a function at runtime based on dynamic type of an object, rather than its static type.

Spilling

variable is spilled stored in memory rather rhan register

SSA Static Single Assignment

A property of an IR where each variable defined(assigned) exactly once and each definition has to occur before it is used.

Constant Propogation

An optimization that replaces each variable that is known to be a constant value with a constant. To do, track what values might be assigned to a variable at each program point

Meet Semilattice

a ordering defined on a set of elementd

Global Analysis

An analysis that works on a cfg, control flor graph, as a whole. More powerful and complicated than local analysis