1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/CodeGen/MIR/X86
Adrian Prantl fb3abba237 [PR27284] Reverse the ownership between DICompileUnit and DISubprogram.
Currently each Function points to a DISubprogram and DISubprogram has a
scope field. For member functions the scope is a DICompositeType. DIScopes
point to the DICompileUnit to facilitate type uniquing.

Distinct DISubprograms (with isDefinition: true) are not part of the type
hierarchy and cannot be uniqued. This change removes the subprograms
list from DICompileUnit and instead adds a pointer to the owning compile
unit to distinct DISubprograms. This would make it easy for ThinLTO to
strip unneeded DISubprograms and their transitively referenced debug info.

Motivation
----------

Materializing DISubprograms is currently the most expensive operation when
doing a ThinLTO build of clang.

We want the DISubprogram to be stored in a separate Bitcode block (or the
same block as the function body) so we can avoid having to expensively
deserialize all DISubprograms together with the global metadata. If a
function has been inlined into another subprogram we need to store a
reference the block containing the inlined subprogram.

Attached to https://llvm.org/bugs/show_bug.cgi?id=27284 is a python script
that updates LLVM IR testcases to the new format.

http://reviews.llvm.org/D19034
<rdar://problem/25256815>

llvm-svn: 266446
2016-04-15 15:57:41 +00:00
..
basic-block-liveins.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
basic-block-not-at-start-of-line-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
block-address-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
callee-saved-info.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
cfi-def-cfa-offset.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
cfi-def-cfa-register.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
cfi-offset.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
constant-pool-item-redefinition-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
constant-pool.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
constant-value-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
dead-register-flag.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
def-register-already-tied-error.mir MIR Serialization: Serialize instruction's register ties. 2015-08-19 19:05:34 +00:00
duplicate-memory-operand-flag.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
duplicate-register-flag-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
early-clobber-register-flag.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
expected-align-in-memory-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-alignment-after-align-in-memory-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-basic-block-at-start-of-body.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-block-reference-in-blockaddress.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-comma-after-cfi-register.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-comma-after-memory-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-different-implicit-operand.mir Fix PR 24724 - The implicit register verifier shouldn't assume certain operand 2015-09-10 14:04:34 +00:00
expected-different-implicit-register-flag.mir Fix PR 24724 - The implicit register verifier shouldn't assume certain operand 2015-09-10 14:04:34 +00:00
expected-from-in-memory-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-function-reference-after-blockaddress.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-global-value-after-blockaddress.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-integer-after-offset-sign.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-integer-after-tied-def.mir MIR Serialization: Serialize instruction's register ties. 2015-08-19 19:05:34 +00:00
expected-integer-in-successor-weight.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-load-or-store-in-memory-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-machine-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-metadata-node-after-debug-location.mir [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
expected-metadata-node-after-exclaim.mir [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
expected-metadata-node-in-stack-object.mir MIR Serialization: Serialize MMI's variable debug information. 2015-08-19 00:13:25 +00:00
expected-named-register-in-allocation-hint.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-named-register-in-callee-saved-register.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-named-register-in-functions-livein.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-named-register-livein.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-newline-at-end-of-list.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-number-after-bb.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-offset-after-cfi-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-pointer-value-in-memory-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-positive-alignment-after-align.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-register-after-cfi-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-register-after-flags.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-size-integer-after-memory-operation.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-stack-object.mir MIR Serialization: Serialize the frame information's stack protector index. 2015-08-18 22:26:26 +00:00
expected-subregister-after-colon.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-target-flag-name.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-tied-def-after-lparen.mir MIR Serialization: Serialize instruction's register ties. 2015-08-19 19:05:34 +00:00
expected-value-in-memory-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
expected-virtual-register-in-functions-livein.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
external-symbol-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
fixed-stack-memory-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
fixed-stack-object-redefinition-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
fixed-stack-objects.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
frame-info-save-restore-points.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
frame-info-stack-references.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
frame-setup-instruction-flag.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
function-liveins.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
generic-instr-type-error.mir [MIR] Add a test case for the diagnostic of a wrongly typed generic instruction 2016-03-15 18:31:29 +00:00
generic-virtual-registers.mir [MIR] Teach the parser/printer that generic virtual registers do not need a register class. 2016-03-08 01:17:03 +00:00
global-value-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
immediate-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
implicit-register-flag.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
inline-asm-registers.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
instructions-debug-location.mir [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
invalid-constant-pool-item.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
invalid-metadata-node-type.mir [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
invalid-target-flag-name.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
invalid-tied-def-index-error.mir MIR Serialization: Serialize instruction's register ties. 2015-08-19 19:05:34 +00:00
jump-table-info.mir fix CHECK_NEXT -> CHECK-NEXT 2016-03-28 22:03:07 +00:00
jump-table-redefinition-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
killed-register-flag.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
large-cfi-offset-number-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
large-immediate-operand-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
large-index-number-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
large-offset-number-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
large-size-in-memory-operand-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
lit.local.cfg
liveout-register-mask.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
machine-basic-block-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
machine-instructions.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
machine-verifier.mir MachineVerifier: Add missing linebreak 2015-11-09 23:59:29 +00:00
memory-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
metadata-operands.mir [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
missing-closing-quote.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
missing-comma.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
missing-implicit-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
named-registers.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
newline-handling.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
null-register-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
register-mask-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
register-operands-target-flag-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
simple-register-allocation-hints.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
spill-slot-fixed-stack-object-aliased.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
spill-slot-fixed-stack-object-immutable.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
spill-slot-fixed-stack-objects.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
stack-object-debug-info.mir [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
stack-object-invalid-name.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
stack-object-operand-name-mismatch-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
stack-object-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
stack-object-redefinition-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
stack-objects.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
standalone-register-error.mir MIR Parser: Return true on error when parsing standalone registers. 2015-08-18 22:57:36 +00:00
subregister-index-operands.mir MIRParser: Add %subreg.xxx syntax for subregister index operands 2016-03-28 18:18:46 +00:00
subregister-operands.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
successor-basic-blocks-weights.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
successor-basic-blocks.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
tied-def-operand-invalid.mir MIR Serialization: Serialize instruction's register ties. 2015-08-19 19:05:34 +00:00
undef-register-flag.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
undefined-fixed-stack-object.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
undefined-global-value.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
undefined-ir-block-in-blockaddress.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
undefined-ir-block-slot-in-blockaddress.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
undefined-jump-table-id.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
undefined-named-global-value.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
undefined-register-class.mir [MIR] Teach the parser how to deal with register banks. 2016-04-08 16:40:43 +00:00
undefined-stack-object.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
undefined-value-in-memory-operand.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
undefined-virtual-register.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
unknown-instruction.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
unknown-machine-basic-block.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
unknown-metadata-keyword.mir MIR Serialization: Serialize the memory operand's TBAA metadata node. 2015-08-17 22:05:15 +00:00
unknown-metadata-node.mir [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
unknown-named-machine-basic-block.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
unknown-register.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
unknown-subregister-index-op.mir MIRParser: Add %subreg.xxx syntax for subregister index operands 2016-03-28 18:18:46 +00:00
unknown-subregister-index.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
unrecognized-character.mir MIR Serialization: Serialize the pointer IR expression values in the machine 2015-08-21 21:54:12 +00:00
used-physical-register-info.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
variable-sized-stack-object-size-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
variable-sized-stack-objects.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00
virtual-register-redefinition-error.mir MIR Serialization: Change MIR syntax - use custom syntax for MBBs. 2015-08-13 23:10:16 +00:00
virtual-registers.mir When printing MIR, output to errs() rather than outs(). 2016-02-19 00:18:46 +00:00