search for: ltovisibility

Displaying 8 results from an estimated 8 matches for "ltovisibility".

2018 Jan 26
1
RFC: Using link-time optimization to eliminate retpolines
...measurable loss of performance. > > We can regain some of those benefits if we know that the set of > possible branch targets is fixed (this is sometimes known to be the > case when using whole-program devirtualization or CFI -- see > https://clang.llvm.org/docs/LTOVisibility.html > <https://clang.llvm.org/docs/LTOVisibility.html>). In that case, we > can construct a so-called “branch funnel” that selects one of the > possible targets by performing a binary search on an address > associated with the indirect branch (for virtual calls, t...
2018 Jan 24
3
RFC: Using link-time optimization to eliminate retpolines
...ts of benign speculation, which can lead to a measurable loss of performance. We can regain some of those benefits if we know that the set of possible branch targets is fixed (this is sometimes known to be the case when using whole-program devirtualization or CFI -- see https://clang.llvm.org/docs/LTOVisibility.html). In that case, we can construct a so-called “branch funnel” that selects one of the possible targets by performing a binary search on an address associated with the indirect branch (for virtual calls, this is the address of the vtable, and for indirect calls via a function pointer, this is th...
2018 Jan 26
0
RFC: Using link-time optimization to eliminate retpolines
...which can lead to a measurable loss of performance. > > We can regain some of those benefits if we know that the set of possible > branch targets is fixed (this is sometimes known to be the case when using > whole-program devirtualization or CFI -- see https://clang.llvm.org/docs/ > LTOVisibility.html). In that case, we can construct a so-called “branch > funnel” that selects one of the possible targets by performing a binary > search on an address associated with the indirect branch (for virtual > calls, this is the address of the vtable, and for indirect calls via a > function...
2020 Apr 02
3
RFC: dynamic_cast optimization in LTO
<font face="Verdana,Arial,Helvetica,sans-serif" size="2"> <span><div>Hi,<br>There was a mention of optimizing away C++ dynamic_casts in LTO in this presentation: <a href="https://www.youtube.com/watch?v=Fd3afoM3UOE&t=1306" target="_blank">https://www.youtube.com/watch?v=Fd3afoM3UOE&t=1306</a><br>I
2016 Oct 26
2
RFC: a more detailed design for ThinLTO + vcall CFI
...vcalls working under ThinLTO. Most of this has been prototyped, so the design does appear to be sound. For context on how CFI currently works under regular LTO, please read: http://llvm.org/docs/TypeMetadata.html http://clang.llvm.org/docs/ControlFlowIntegrityDesign.html http://clang.llvm.org/docs/LTOVisibility.html ==== Summary extensions ==== The combined summary index would be extended to include a mapping from type identifiers to "resolutions". The resolution would control what type of code we generate to create a CFI check for that type identifier. Here are the resolutions that we would s...
2019 Dec 11
5
RFC: Safe Whole Program Devirtualization Enablement
...ation is supported for LTO (both regular and Thin) via the -fwhole-program-vtables option. However, it can only be safely applied to classes for which LTO can analyze the entire class hierarchy, and therefore is restricted to those classes with hidden LTO visibility. See https://clang.llvm.org/docs/LTOVisibility.html for more information. The LTO visibility of a class is derived at compile time from the class’s symbol visibility. Generally, only classes that are internal at the source level (e.g. declared in an anonymous namespace) receive hidden LTO visibility. Compiling with -fvisibility=hidden tells th...
2016 Oct 28
0
RFC: a more detailed design for ThinLTO + vcall CFI
...Most of this has been prototyped, so the design does appear > to be sound. For context on how CFI currently works under regular LTO, > please read: > > http://llvm.org/docs/TypeMetadata.html > http://clang.llvm.org/docs/ControlFlowIntegrityDesign.html > http://clang.llvm.org/docs/LTOVisibility.html > > ==== Summary extensions ==== > > The combined summary index would be extended to include a mapping from > type identifiers to "resolutions". The resolution would control what type > of code we generate to create a CFI check for that type identifier. Here > ar...
2020 Aug 05
2
Debugging a potential bug when generating wasm32
Hi, Sorry if you've seen this message before on llvm.discourse.group or elsewhere -- I've been trying to get to the bottom of this for a while now and asked about this in a few different platforms before. I'm currently trying to debug a bug in a LLVM-generated Wasm code. The bug could be in the code that generates LLVM (rustc) or in the LLVM, I'm not sure yet. LLVM IR and Wasm