Skip to content

Merge rc/1.18 into next.#185

Merged
hvitved merged 62 commits into
github:nextfrom
adityasharad:merge/1.18-next-120918
Sep 12, 2018
Merged

Merge rc/1.18 into next.#185
hvitved merged 62 commits into
github:nextfrom
adityasharad:merge/1.18-next-120918

Conversation

@adityasharad

Copy link
Copy Markdown
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

hvitved commented Sep 12, 2018

Copy link
Copy Markdown
Contributor

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

@adityasharad

Copy link
Copy Markdown
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