Home / Function/ recordPhiDerivations() — react Function Reference

recordPhiDerivations() — react Function Reference

Architecture documentation for the recordPhiDerivations() function in ValidateNoDerivedComputationsInEffects_exp.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  2d80e3d3_eaf3_911b_9f07_e94ea4f8013f["recordPhiDerivations()"]
  a38a9d1f_969c_8056_aa80_6cb5fedba226["ValidateNoDerivedComputationsInEffects_exp.ts"]
  2d80e3d3_eaf3_911b_9f07_e94ea4f8013f -->|defined in| a38a9d1f_969c_8056_aa80_6cb5fedba226
  f9f36408_8e51_961b_c26d_24ee285bd479["validateNoDerivedComputationsInEffects_exp()"]
  f9f36408_8e51_961b_c26d_24ee285bd479 -->|calls| 2d80e3d3_eaf3_911b_9f07_e94ea4f8013f
  23e95905_7740_9185_1ad6_1a529d6f88ad["recordInstructionDerivations()"]
  23e95905_7740_9185_1ad6_1a529d6f88ad -->|calls| 2d80e3d3_eaf3_911b_9f07_e94ea4f8013f
  6184bf45_a975_a050_1701_b84d78f350c9["joinValue()"]
  2d80e3d3_eaf3_911b_9f07_e94ea4f8013f -->|calls| 6184bf45_a975_a050_1701_b84d78f350c9
  d47181e1_cf8f_56cd_bdd7_4bce6f7d15d9["addDerivationEntry()"]
  2d80e3d3_eaf3_911b_9f07_e94ea4f8013f -->|calls| d47181e1_cf8f_56cd_bdd7_4bce6f7d15d9
  style 2d80e3d3_eaf3_911b_9f07_e94ea4f8013f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateNoDerivedComputationsInEffects_exp.ts lines 258–287

function recordPhiDerivations(
  block: BasicBlock,
  context: ValidationContext,
): void {
  for (const phi of block.phis) {
    let typeOfValue: TypeOfValue = 'ignored';
    let sourcesIds: Set<IdentifierId> = new Set();
    for (const operand of phi.operands.values()) {
      const operandMetadata = context.derivationCache.cache.get(
        operand.identifier.id,
      );

      if (operandMetadata === undefined) {
        continue;
      }

      typeOfValue = joinValue(typeOfValue, operandMetadata.typeOfValue);
      sourcesIds.add(operand.identifier.id);
    }

    if (typeOfValue !== 'ignored') {
      context.derivationCache.addDerivationEntry(
        phi.place,
        sourcesIds,
        typeOfValue,
        false,
      );
    }
  }
}

Domain

Subdomains

Frequently Asked Questions

What does recordPhiDerivations() do?
recordPhiDerivations() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateNoDerivedComputationsInEffects_exp.ts.
Where is recordPhiDerivations() defined?
recordPhiDerivations() is defined in compiler/packages/babel-plugin-react-compiler/src/Validation/ValidateNoDerivedComputationsInEffects_exp.ts at line 258.
What does recordPhiDerivations() call?
recordPhiDerivations() calls 2 function(s): addDerivationEntry, joinValue.
What calls recordPhiDerivations()?
recordPhiDerivations() is called by 2 function(s): recordInstructionDerivations, validateNoDerivedComputationsInEffects_exp.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free