/ LTCG (kód odkazu generace)

/LTCG[:NOSTATUS|:STATUS|:PGINSTRUMENT|:PGOPTIMIZE|:PGUPDATE]

Poznámky

  • : NOSTATUS | : Stav, (volitelné)
    Určuje, zda vytvořeném propojovacím zobrazí indikátor průběhu zobrazující propojení, jaké procento dokončení.Standardně nejsou zobrazeny informace o tomto stavu.

  • : PGINSTRUMENT, (volitelné)
    Určuje, že vytvořeném propojovacím výstupy, že spustí soubor .pgd v rámci přípravy získávaná test na aplikaci.Můžete použít /PGD možnost určit název souboru nebo umístění souboru .pgd.

    Data získávaná spuštění sběru slouží k vytvoření optimalizované bitové kopie.Další informace naleznete v Profil s asistencí optimalizace.Krátký formulář této možnosti je /LTCG:PGI.

  • : PGOPTIMIZE, (volitelné)
    Určuje, že vytvořeném propojovacím vytvořené po spuštění vytvořit optimalizovaný obraz získávaná binární data profilu.Všechny vstupní soubory musí být shodné se soubory, které byly zadány v /LTCG:PGI.Další informace naleznete v Profil s asistencí optimalizace.Krátký formulář této možnosti je /LTCG:PGO.

  • : PGUPDATE, (volitelné)
    Umožňuje vstupní soubory přidány nebo změněny z co bylo uvedeno v seznamu: PGINSTRUMENT fáze.Nové vstupní soubory nejsou optimalizovány pomocí optimalizace s asistencí profilu a nejsou optimalizovány změněné části upravené vstupního souboru, které neruší profil údaje shromážděné během fáze WMI pro kód pomocí optimalizace s asistencí profilu.Další informace naleznete v Profil s asistencí optimalizace.Krátký formulář této možnosti je /LTCG:PGU.

Možnost /LTCG umožňuje linker volání kompilátor a provést optimalizaci celého programu.Můžete také provést profilu s asistencí optimalizace.Další informace naleznete v Profil s asistencí optimalizace.

S následujícími výjimkami linker možnosti nelze přidat do /LTCG:PGOPTIMIZE nebo /LTCG:PGUPDATE spuštění, které nebyly zadány v /LTCG:PGINSTRUMENT spustit:

Není nutné všechny linker možnosti, které jsou určeny k /LTCG:PGINSTRUMENT k /LTCG:PGOPTIMIZE; jejich předpokládané.

Zbytek Toto téma popisuje /LTCG z hlediska generování kódu odkaz čas.

/ S implikován LTCG /GL.

Vytvořeném propojovacím vyvolá generování kódu odkaz čas, pokud předán modulu, který byl kompilován pomocí /GL nebo modulu MSIL (viz .netmodule soubory jako vstup Linker).Pokud neurčíte výslovně /LTCG při předání /GL nebo modulů MSIL linker linker nakonec to zjistí a restartuje propojení pomocí /LTCG.Explicitně zadat /LTCG při předání /GL a sestavení modulů MSIL linker pro co nejrychlejší výkon.

/LTCGnení platný pro použití s /INCREMENTAL.

Při /LTCG se používá k propojení moduly zkompilovány pomocí /Og, /O1, /O2, nebo /Ox, jsou provedeny následující optimalizace:

  • Cross modul inlining

  • Interprocedural rejstříku přidělení (pouze 64bitové operační systémy)

  • Vlastní konvenci volání (pouze x 86)

  • Malé posunutí TLS (pouze x 86)

  • Dvojité zarovnání zásobníku (pouze x 86)

  • Odstraňování mnohoznačností zlepšení paměti (lepší rušení informace pro vstupní parametry a globální proměnné)

[!POZNÁMKA]

Vytvořeném propojovacím rozhodne, které optimalizace funkce byla zkompilována a platí stejné optimalizace v okamžiku propojení.

Pomocí /LTCG a /Ogt způsobuje optimalizace dvojité zarovnání.

Pokud /LTCG a /Ogs jsou specifikovány dvojité zarovnání nebyla provedena.Pokud většina funkcí aplikace jsou kompilovány pro rychlost, s několika funkcí sestavit pro velikost (například pomocí Optimalizace pragma), kompilátor dvojité zarovná funkce, které jsou optimalizovány pro velikost, pokud funkce, které vyžadují dvojí zarovnání.

Pokud všechny servery volání funkce může kompilátor identifikovat, Kompilátor ignoruje modifikátory explicitní volání úmluvy na funkce a pokusí se optimalizaci konvenci volání funkce:

  • předat parametry registry

  • Změna pořadí parametrů pro zarovnání

  • Odebrání nepoužívaných parametry

Funkce se nazývá prostřednictvím funkce ukazatele nebo vytvářecí funkce je volána mimo modul, který je kompilován pomocí /GL, kompilátor nebude pokoušet optimalizaci konvenci volání funkce.

[!POZNÁMKA]

Používáte-li /LTCG a mainCRTStartup, předefinujte aplikace může mít nepředvídatelné chování, který se vztahuje k kód uživatele, který provádí před globální objekty jsou inicializovány.Tento problém řeší třemi způsoby: předefinování není mainCRTStartup, kompilovat soubor obsahující pomocí mainCRTStartup /LTCG, nebo inicializovat staticky globálních proměnných a objektů.

/ MSIL modulů a LTCG

Moduly, které jsou sestaveny s použitím /GL a /clr lze použít jako vstup do vytvořeném propojovacím při /LTCG je určena.

  • /LTCGmůžete přijmout nativní objekt soubory, soubory spravované/nativní objekt smíšené (sestavit pomocí /clr), čistý objektu soubory (sestavit pomocí /clr:pure) a bezpečné objekt soubory (sestavit pomocí /clr:safe)

  • /LTCGmůžete přijmout bezpečné.netmodules, který lze vytvořit pomocí /clr:safe /LN v jazyce C++ a /target:module v jiných kompilátor Visual Studio..Netmodules vyrobené pomocí**/clr** nebo /clr:pure nejsou přijímány /LTCG.

  • /LTCG:PGI nepřijímá nativní moduly zkompilovány pomocí /GL a /clr, nebo čistý moduly (vytvořené pomocí /clr:pure)

Chcete-li nastavit tuto možnost kompilátoru ve vývojovém prostředí Visual Studio

  1. Otevřete projekt Stránky vlastností dialogové okno.Viz téma Změna nastavení projektu.

  2. Vyberte Vlastnosti konfigurace složky.

  3. Vyberte Obecné stránky vlastností.

  4. Změnit Celý Program optimalizace vlastnost.

Můžete také použít /LTCG na konkrétní sestavení výběrem sestavení, s asistencí optimalizace profilu na panelu nabídek nebo výběrem možnosti optimalizace s asistencí profil v místní nabídce pro projekt.

Programově nastavit tuto volbu kompilátoru

Viz také

Referenční dokumentace

Nastavení možností Linker

Možnosti Linker