Skip to content

Conversation

@adityasharad
Copy link
Collaborator

No conflicts.

Esben Sparre Andreasen and others added 30 commits September 4, 2018 09:25
The overrides of `Instruction.getOperandMemoryAccess` did not relate
`this` to any of its other parameters, which made it attempt to compute
the Cartesian product of `Instruction` and `TPhiOperand`. This happened
only during computation of aliased SSA. Perhaps the optimizer was able
to eliminate the CP for the non-aliased SSA computation.

With this change, I'm able to compute aliased SSA for medium-sized
snapshots.
Follow a naming structure similar to the data flow library:

- `ControlFlowNode` -> `ControlFlow::Node`.
- `CallableEntryNode` -> `ControlFlow::Nodes::EntryNode`.
- `CallableExitNode` -> `ControlFlow::Nodes::ExitNode`.
- `ControlFlowEdgeType` -> `ControlFlow::SuccessorType`.
- `ControlFlowEdgeSuccessor` -> `ControlFlow::SuccessorTypes::NormalSuccessor`.
- `ControlFlowEdgeConditional -> ControlFlow::SuccessorTypes::ConditionalSuccessor`.
- `ControlFlowEdgeBoolean` -> `ControlFlow::SuccessorTypes::BooleanSuccessor`.
- `ControlFlowEdgeNullness` -> `ControlFlow::SuccessorTypes::NullnessSuccessor`.
- `ControlFlowEdgeMatching` -> `ControlFlow::SuccessorTypes::MatchingSuccessor`.
- `ControlFlowEdgeEmptiness` -> `ControlFlow::SuccessorTypes::EmptinessSuccessor`.
- `ControlFlowEdgeReturn` -> `ControlFlow::SuccessorTypes::ReturnSuccessor`.
- `ControlFlowEdgeBreak` -> `ControlFlow::SuccessorTypes::BreakSuccessor`.
- `ControlFlowEdgeContinue` -> `ControlFlow::SuccessorTypes::ContinueSuccessor`.
- `ControlFlowEdgeGotoLabel` -> `ControlFlow::SuccessorTypes::GotoLabelSuccessor`.
- `ControlFlowEdgeGotoCase` -> `ControlFlow::SuccessorTypes::GotoCaseSuccessor`.
- `ControlFlowEdgeGotoDefault` -> `ControlFlow::SuccessorTypes::GotoDefaultSuccessor`.
- `ControlFlowEdgeException` -> `ControlFlow::SuccessorTypes::ExceptionSuccessor`
C#: Rename and restructure control flow graph entities
- While statements
- Object initializers
…andled. Move `getCondition` to `CaseStmt`. Implement the CFG and tests.
@adityasharad adityasharad requested review from a team as code owners September 12, 2018 14:02
@adityasharad adityasharad added depends on internal PR This PR should only be merged in sync with an internal Semmle PR Mergeback labels Sep 12, 2018
@hvitved
Copy link
Contributor

hvitved commented Sep 12, 2018

Why not against master? I realize that it would normally be against next, but master is already incompatible with 1.17.

@adityasharad
Copy link
Collaborator Author

I created this to aid an internal mergeback from 1.18 to master, which will need this against ql:next. Happy to do this against ql:master separately too, but I'd rather not block the internal merge on the sequence of rc/1.18->master->next here.

@hvitved hvitved merged commit 7db2589 into github:next Sep 12, 2018
aibaars pushed a commit that referenced this pull request Oct 14, 2021
Improve performance of `internal/Module.qll`
smowton added a commit to smowton/codeql that referenced this pull request Jan 17, 2022
MathiasVP pushed a commit to MathiasVP/ql that referenced this pull request Aug 10, 2025
PS: Fixup SSA after GitHub's 2.21.0 changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

depends on internal PR This PR should only be merged in sync with an internal Semmle PR Mergeback

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants