Target Code Generation


하드웨어에 의존적인 작업들 진행
- input - [Three-address code](https://texonom.com/three-address-code-8c43d1cc133d4d9ba91a2f3780d7e1ee) 
- output - [Assembly Code](https://texonom.com/assembly-code-46b982a69b844df0b33ed4f740f59b0b) 
Set에 따라서 최종 최적화 진행되기도
### Target Code Generation Notion
|Title|
|:-:|
|[Instruction Selection](https://texonom.com/instruction-selection-b4d9c7a885c141128637eaa8797f861e)|
|[Instruction Scheduling](https://texonom.com/instruction-scheduling-f0ccb17d83bb4c0db4011badf4c1409f)|
|[Register Allocation](https://texonom.com/register-allocation-71ec789f2cad40998f6052c62f8b057e)|
|[Target Code Rewrite Rule](https://texonom.com/target-code-rewrite-rule-a17cba7d9ef7473daea49266b6620e6a)|
1. Choose instructions to implement each IR operation (need toexpose explicit memory operations and calling sequences)
2. Find a good order for the instructions to execute
3. Decide which value to keep in registers
All three tasks, in general, are very difficult (NP-Complete problems)








