Ezgi Çiçek
b455baae5d
[loop-invariance] Invalidate args to T function calls
...
Reviewed By: ngorogiannis
Differential Revision: D15451671
fbshipit-source-id: 20653f34e
6 years ago
Ezgi Çiçek
639c91c29f
[loop-invariance] Add FPs for modified global and static invalidation
...
Reviewed By: mbouaziz, ngorogiannis
Differential Revision: D15451632
fbshipit-source-id: 67f5f4c89
6 years ago
Ezgi Çiçek
f4cdc23543
[hoisting] Turn on hoisting of expensive functions by default
...
Reviewed By: mbouaziz
Differential Revision: D14971084
fbshipit-source-id: ccbf6055e
6 years ago
Ezgi Çiçek
4eec73c2f2
[loop-hoisting] Add complexity to EXPENSIVE_LOOP_INVARIANT_CALL issue message
...
Reviewed By: mbouaziz
Differential Revision: D14933345
fbshipit-source-id: 5a711fd2a
6 years ago
Ezgi Çiçek
a2140c3ae4
[hoisting] Rename LOOP_INVARIANT_CALL to EXPENSIVE_LOOP_INVARIANT_CALL and remove VariantForHoisting
...
Reviewed By: mbouaziz
Differential Revision: D14913784
fbshipit-source-id: 5d5d5bee3
6 years ago
Sungkeun Cho
82590756d9
[inferbo] Fix array member access in Java
...
Summary: In SIL, Java's array member is a pointer to an array, while C++'s is the array itself. This diff differentiate them in evaluating abstract locations.
Reviewed By: ezgicicek, mbouaziz
Differential Revision: D14021451
fbshipit-source-id: 00f14fe3b
6 years ago
Ezgi Çiçek
ea486c59d8
[purity] Always show PURE_FUNCTION issues
...
Reviewed By: mbouaziz
Differential Revision: D13973375
fbshipit-source-id: f23dab260
6 years ago
Ezgi Çiçek
6e0682b463
[purity] Mark unmodeled functions as modifying global state
...
Reviewed By: mbouaziz
Differential Revision: D13941653
fbshipit-source-id: 02a15b29c
6 years ago
Mehdi Bouaziz
1b8927badd
[inferbo/cost] Do not produce inferbo issues on Cost and Purity analysis
...
Reviewed By: skcho
Differential Revision: D13827167
fbshipit-source-id: 734950a1e
6 years ago
Mehdi Bouaziz
8a3592c34e
[inferbo] Uncouple numerical analysis and numerical checks
...
Summary:
This will allow to get the numerical results for Cost, Hoisting, Purity without the Inferbo issues.
For now, I still forced Inferbo issues for Cost and Purity to avoid lots of changes in tests, that will go away soon.
Reviewed By: ezgicicek, skcho
Differential Revision: D13826741
fbshipit-source-id: 796d1a50d
6 years ago
Ezgi Çiçek
b46f55d0bc
[purity] Mark functions with empty modified params as pure
...
Reviewed By: mbouaziz, ngorogiannis
Differential Revision: D13452909
fbshipit-source-id: f0dc419b1
6 years ago
Ezgi Çiçek
89b73e554e
[purity] Mark functions that write to global static vars as impure
...
Reviewed By: ngorogiannis
Differential Revision: D13434587
fbshipit-source-id: 6fb3cf917
6 years ago
Ezgi Çiçek
61b51b09db
[hoisting] Rename hoisting message
...
Reviewed By: ngorogiannis
Differential Revision: D13415995
fbshipit-source-id: bbf1ee855
6 years ago
Ezgi Çiçek
305b2a74b8
[hoisting] Add new issue type for only invariant-modeled calls
...
Reviewed By: ngorogiannis
Differential Revision: D13194812
fbshipit-source-id: 0c020789d
6 years ago
Ezgi Çiçek
613c4a2848
[purity] Fix wrong invalidation of all params
...
Reviewed By: ddino
Differential Revision: D13119156
fbshipit-source-id: a766c16be
6 years ago
Ezgi Çiçek
6683c71f8b
[purity, hoisting] Add more purity models for fblite and instagram
...
Reviewed By: mbouaziz
Differential Revision: D13082201
fbshipit-source-id: e2b3f3e18
6 years ago
Ezgi Çiçek
dde0067eec
[purity] Don't report pure functions if hoisting mode is turned-on
...
Reviewed By: ddino
Differential Revision: D13025725
fbshipit-source-id: 44d138418
6 years ago
Ezgi Çiçek
f3d82a0230
[hoisting] Don't report functions modeled as VariantForHoisting but consider them invariant
...
Reviewed By: ddino
Differential Revision: D13025250
fbshipit-source-id: ba1e39591
6 years ago
Ezgi Çiçek
2f06fd768f
[purity, hoisting] Keep track of modified args
...
Reviewed By: mbouaziz
Differential Revision: D12921871
fbshipit-source-id: 17ba48895
6 years ago
Ezgi Çiçek
d5a2198010
[hoisting] Make invalidation stop at already explored (var,node) pairs
...
Reviewed By: mbouaziz
Differential Revision: D12957025
fbshipit-source-id: b51f81966
6 years ago
Ezgi Çiçek
ff722f975d
[hoisting] Stop invalidation at loop head
...
Reviewed By: mbouaziz
Differential Revision: D12925391
fbshipit-source-id: f74ef935e
6 years ago
Ezgi Çiçek
3fb1053b75
[hoisting] Invalidate arguments of type structs
...
Reviewed By: mbouaziz
Differential Revision: D12924850
fbshipit-source-id: b442d37be
6 years ago
Ezgi Çiçek
39335bb095
[hoisting] Invalidate all dependencies of invalidated parameters
...
Reviewed By: mbouaziz
Differential Revision: D10356056
fbshipit-source-id: a5d3b4bbe
6 years ago
Ezgi Çiçek
8a51a70162
[Hoisting] Add FP test for indirect modification in loop
...
Reviewed By: mbouaziz
Differential Revision: D10288095
fbshipit-source-id: 55cd2870a
6 years ago
Ezgi Çiçek
affe3d1d60
[hoisting] Invalidate args of impure function calls
...
Reviewed By: mbouaziz
Differential Revision: D10236724
fbshipit-source-id: f39d4574d
6 years ago
Ezgi Çiçek
78a865b14e
[hosting] Disable purity and cost callbacks temporarily
...
Reviewed By: mbouaziz
Differential Revision: D10356668
fbshipit-source-id: a04c329c9
6 years ago
Ezgi Çiçek
99c2a6da8d
[hoisting] Hoist only expensive pure functions
...
Reviewed By: mbouaziz
Differential Revision: D10236706
fbshipit-source-id: c51a9ff0c
6 years ago
Ezgi Çiçek
b54307f5d0
[Hoisting] Add test for FP due to no purity check
...
Reviewed By: ngorogiannis
Differential Revision: D10105786
fbshipit-source-id: 0a8dc9b73
6 years ago
Ezgi Çiçek
aca0b8e130
[Hoisting] Fix hoisting of void functions
...
Reviewed By: mbouaziz
Differential Revision: D10105698
fbshipit-source-id: 56a91dbd4
6 years ago
Mehdi Bouaziz
7c89d92851
[RFC] Format all java files
...
Reviewed By: jeremydubreil
Differential Revision: D10067033
fbshipit-source-id: 73975664e
6 years ago
Jules Villard
a29e769b61
[kill -a][1/4] stop using `-a foo` in the infer repo
...
Summary:
Goal of the stack: deprecate the `--analyzer` option in favour of turning
individual features on and off. This option is a mess: some of the options are
now subcommands (compile, capture), others are aliases (infer and checkers),
and they can all be replicated using some straightforward combination of other
options.
This diff: stop using `--analyzer` in tests. It's mostly `checkers` everywhere,
which is already the default. `linters` becomes `--no-capture --linters-only`.
`infer` is supposed to be `checkers` already. `crashcontext` is
`--crashcontext-only`.
Reviewed By: mbouaziz
Differential Revision: D9942689
fbshipit-source-id: 048281761
6 years ago
Ezgi Çiçek
15bdcca119
[Loop-hoisting] Add a new model for Javax's Provider.get() and make it invariant only
...
Reviewed By: mbouaziz, ddino
Differential Revision: D9748162
fbshipit-source-id: bedd2300e
6 years ago
Ezgi Çiçek
b2e7a785ba
[Loop-hoisting] Add more models for invariant analysis
...
Reviewed By: mbouaziz
Differential Revision: D9497910
fbshipit-source-id: 765c75c9b
6 years ago
Ezgi Çiçek
49e582fa49
[Loop-hoisting] Add a new checker for hoisting invariant function calls
...
Reviewed By: mbouaziz
Differential Revision: D9460455
fbshipit-source-id: 7488c1a69
6 years ago