Sam Blackshear
ef1b76d27b
new procCfg type with each node containing at most one instruction
...
Reviewed By: jberdine
Differential Revision: D3273366
fbshipit-source-id: af46536
9 years ago
Sam Blackshear
0becc32a88
factoring Node module out of CFG
...
Reviewed By: jberdine
Differential Revision: D3273314
fbshipit-source-id: fe32f82
9 years ago
Sam Blackshear
f60b17d8b9
correctly handling Sil.Letderef(Var, Var) Sil.Set(Var, _) in copy propagation
...
Reviewed By: jvillard
Differential Revision: D3265032
fb-gh-sync-id: 73d81fa
fbshipit-source-id: 73d81fa
9 years ago
Sam Blackshear
b20ef20644
Allowing custom procCfg node types
...
Reviewed By: jberdine
Differential Revision: D3261163
fb-gh-sync-id: 6971a69
fbshipit-source-id: 6971a69
9 years ago
Sam Blackshear
ebcfae388a
handling Set(Var, _,) as read of var in liveness analysis
...
Reviewed By: jvillard
Differential Revision: D3264597
fb-gh-sync-id: efe1982
fbshipit-source-id: efe1982
9 years ago
Sam Blackshear
49d32859cb
adding optional postprocessing step to transfer functions
...
Reviewed By: jeremydubreil
Differential Revision: D3237864
fb-gh-sync-id: e6e5f92
fbshipit-source-id: e6e5f92
9 years ago
Sam Blackshear
90a5a5912f
allowing extra data to be packaged along with procCfg
...
Reviewed By: jeremydubreil
Differential Revision: D3234490
fb-gh-sync-id: fefeafb
fbshipit-source-id: fefeafb
9 years ago
Sam Blackshear
f3fe199a25
Forcing node ids of procCfg's to be Cfg.Node.id
...
Summary:
Results of AbsInt checkers are node id -> abstract state maps.
It's hard to compare/combine the results of multiple analyses if the node id types are different.
Needed for the upcoming improvements of the preanalysis.
Reviewed By: jvillard
Differential Revision: D3235669
fb-gh-sync-id: c5251cf
fbshipit-source-id: c5251cf
9 years ago
Sam Blackshear
596d8338ee
dealing with exceptional control-flow in abstract interpreter
...
Reviewed By: cristianoc
Differential Revision: D3178139
fb-gh-sync-id: e1f9364
fbshipit-source-id: e1f9364
9 years ago
Sam Blackshear
6aca1cdfef
exceptional procCfg
...
Reviewed By: cristianoc, jeremydubreil
Differential Revision: D3177625
fb-gh-sync-id: 4123d37
fbshipit-source-id: 4123d37
9 years ago
Sam Blackshear
988ceafbf0
adding try/catch/finally instruction to structured SIL
...
Reviewed By: cristianoc
Differential Revision: D3176951
fb-gh-sync-id: 140e0ae
fbshipit-source-id: 140e0ae
9 years ago
Cristiano Calcagno
054ad223a8
Fix control-flow graph shape when conditional is last instruction.
...
Summary:public
When a conditional is the last instruction, there will be a join node leading directly to the exit node.
Some instructions, such as nullification of dead variables, and abstraction, are added to the control flow graph automatically. But, join nodes cannot contain instructions. So when a procedure ends with a conditional, there might be no place to store these instructions.
This diff adds one extra node between the join and the exit node in that situation.
Reviewed By: jvillard
Differential Revision: D3179056
fb-gh-sync-id: 2b9cd7e
fbshipit-source-id: 2b9cd7e
9 years ago
Josh Berdine
e1020c8ebe
Remove -open(Utils) compile flag hack
...
Summary:public
Eliminate the use of the -open Utils command line option passed to the compiler in favor of `open! Utils` in each source file. While slightly convenient, this option causes more headaches than it is worth with other tools e.g. merlin.
Reviewed By: jvillard
Differential Revision: D3168193
fb-gh-sync-id: 4285ef6
fbshipit-source-id: 4285ef6
9 years ago
Sam Blackshear
e54db73bab
pass tenv to the transfer functions
...
Reviewed By: cristianoc
Differential Revision: D3153716
fb-gh-sync-id: 855fc41
fbshipit-source-id: 855fc41
9 years ago
Sam Blackshear
c499645f6f
better names in AbstractDomain and TransferFunctions modules
...
Reviewed By: jeremydubreil
Differential Revision: D3140288
fb-gh-sync-id: 0bc08a4
fbshipit-source-id: 0bc08a4
9 years ago
Sam Blackshear
967dcec7f1
liveness analysis and unit tests
...
Reviewed By: cristianoc
Differential Revision: D3080119
fb-gh-sync-id: a11a6ea
fbshipit-source-id: a11a6ea
9 years ago
Sam Blackshear
c8b87ed0c8
passing caller pdesc into the transfer functions
...
Summary:public It's useful for the transfer functions to understand what the current procedure is. Applications include debugging, implementing context-sensitivity, asking which program variables are parameters, and the list goes on.
In the future, we'll almost certainly want to pass the tenv to the transfer functions as well.
Reviewed By: jberdine
Differential Revision: D3104997
fb-gh-sync-id: 1c0df8f
fbshipit-source-id: 1c0df8f
9 years ago
Cristiano Calcagno
509a666ee0
Refactor Sil.pvar into a separate module.
...
Reviewed By: sblackshear
Differential Revision: D3103575
fb-gh-sync-id: 8e3a786
fbshipit-source-id: 8e3a786
9 years ago
Sam Blackshear
c03f39f20c
Fixing some issues with Obj-C blocks
...
Reviewed By: ddino
Differential Revision: D3074078
fb-gh-sync-id: 4a5c524
fbshipit-source-id: 4a5c524
9 years ago
Sam Blackshear
a71caccc80
address-taken analysis and tests
...
Reviewed By: jeremydubreil
Differential Revision: D3066722
fb-gh-sync-id: 0239cc7
shipit-source-id: 0239cc7
9 years ago
Cristiano Calcagno
c198d76631
Clean up the Procname module, and remove remaining assert false
...
Reviewed By: sblackshear
Differential Revision: D3063888
fb-gh-sync-id: baf4102
shipit-source-id: baf4102
9 years ago
Sam Blackshear
dec843f5f5
copy-propagation analysis + tests
...
Reviewed By: cristianoc
Differential Revision: D3014280
fb-gh-sync-id: ce60320
shipit-source-id: ce60320
9 years ago
Sam Blackshear
8913e38dbd
getting rid of bottom
...
Differential Revision: D3042821
fb-gh-sync-id: 838d948
shipit-source-id: 838d948
9 years ago
Sam Blackshear
730a2afaaf
more consistency with abbreviated functions names in abstract domain signature
...
Reviewed By: dkgi
Differential Revision: D3012533
fb-gh-sync-id: 89d749c
shipit-source-id: 89d749c
9 years ago
Sam Blackshear
ddfd35107c
unit tests for abstract interpreter
...
Reviewed By: dkgi
Differential Revision: D2997610
fb-gh-sync-id: 733b45e
shipit-source-id: 733b45e
9 years ago
Sam Blackshear
2f44f3faa8
adding generic abstract interpreter
...
Reviewed By: dkgi
Differential Revision: D2997068
fb-gh-sync-id: 265c0b9
shipit-source-id: 265c0b9
9 years ago
Sam Blackshear
b62bdc46b6
adding scheduler abstraction and reverse postorder scheduler
...
Reviewed By: dkgi
Differential Revision: D2975916
fb-gh-sync-id: 0b9a8bf
shipit-source-id: 0b9a8bf
9 years ago
Sam Blackshear
85747084b5
adding dependency on ounit
...
Reviewed By: cristianoc
Differential Revision: D2979151
fb-gh-sync-id: d68b2c4
shipit-source-id: d68b2c4
9 years ago
Sam Blackshear
62965e8051
adding runner for OCaml unit tests
...
Reviewed By: cristianoc
Differential Revision: D2977765
fb-gh-sync-id: abb1b8b
shipit-source-id: abb1b8b
9 years ago