blob: fb4ede6b8460618086b8940f916155e0c7866080 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Add IR op metadata tags in json
Initial Metadata:
- StoreMemory
- Stores to memory. Ensures that even if the op doesn't generate output, that it can't be DCE'd
- Volatile
- Similar to StoreMemory. Even if it doesn't write memory, this is a volatile op that shouldn't be DCE'd
Architecture specific select of metadata
- ClobbersFlags
- Clobbers host side flags, so if FLAG register class is used, must be spilled around this op
- NecessaryTemps
- Number of temp registers this IR op needs to work. Will allocate a register that its live range starts at this op and then ends at the same op
- PhysicalRegisters - (We need both dest physical colouring and argument physical colouring)
- If this op needs specific physical registers then this is an RA constraint that enforces those registers to be allocated
|