Udostępnij za pośrednictwem


Intrinsics kompilatora

Większość funkcji są zawarte w bibliotekach, ale niektóre funkcje są wbudowane (to znaczy wewnętrzne) aby kompilator.Te są nazywane funkcje wewnętrzne lub intrinsics.

Uwagi

Jeśli funkcja jest wewnętrzna, kod dla tej funkcji jest zazwyczaj wstawiony w tekście, unikanie obciążenie związane z wywołania funkcji i umożliwiając instrukcji maszynowych wysoce wydajne, być emitowane dla tej funkcji.Wewnętrzna jest często szybsze niż zestawu równoważnych inline ponieważ Optymalizator ma wbudowane znajomość zachowują się jak wiele intrinsics, więc niektóre optymalizacje mogą być dostępne, są niedostępne, gdy jest używany wbudowany zestaw.Optymalizator można również rozwinąć wewnętrzne inaczej, inaczej wyrównać buforów lub innych dostosowań w zależności od kontekstu i argumenty wywołania.

Użycie intrinsics dotyczy przenośności kodu, ponieważ intrinsics, które są dostępne w programie Visual C++ nie mogą być dostępne, jeśli kod jest skompilowany z inne kompilatory i niektóre intrinsics, które są dostępne dla wybranych architektur docelowego nie są dostępne dla wszystkich architektur.Jednakże intrinsics są zwykle bardziej przenośne niż wbudowany zestaw.Intrinsics są wymagane w 64-bitowych architekturach gdzie wbudowany zestaw nie jest obsługiwany.

Niektóre intrinsics, takie jak __assume i __ReadWriteBarrier, przekazać informacje do kompilatora, który wpływa na zachowanie Optymalizator.

Niektóre intrinsics są dostępne tylko dla intrinsics i są dostępne zarówno w funkcji i wewnętrzne implementacji.Można nakazać kompilatorowi używać wewnętrzne wdrażania w jeden z dwóch sposobów, w zależności od tego, czy chcesz włączyć tylko określone funkcje lub chcesz włączyć wszystkie intrinsics.The first way is to use #pragma intrinsic(intrinsic-function-name-list).Pragma można określić wewnętrzne jednego lub wielu intrinsics oddzielonych przecinkami.Druga jest użycie /Oi (Generuj funkcje wewnętrzne) opcję kompilatora, który udostępnia wszystkie intrinsics na danej platformie.W obszarze /Oi, użyj #pragma function(intrinsic-function-name-list) wymusić wywołanie funkcji, aby zamiast wewnętrzne.Jeśli dokumentacja dla określonego wewnętrzne zauważa, że rutynowe jest tylko dostępna jako wewnętrzne, a następnie wewnętrzne wdrażania jest używany niezależnie od tego czy /Oi lub #pragma intrinsic jest określony.We wszystkich przypadkach /Oi lub #pragma intrinsic umożliwia, ale nie zmusza optymalizator, aby użyć wewnętrzne.Optymalizator nadal można wywołać funkcję.

Niektóre standardowe funkcje biblioteki C/C++ są dostępne w implementacjach wewnętrzne na niektóre architektury.Podczas wywoływania funkcji CRT, wewnętrzne wykonania jest używana, jeśli /Oi jest określony w wierszu polecenia.

Plik nagłówka, Intrin.h, jest dostępny oświadcza, że prototypy dla istotnych funkcji.Ponadto niektóre nagłówki Windows zadeklarować funkcji mapowania na wewnętrzne kompilatora.

Poniżej znajduje się lista wszystkich intrinsics, które są dostępne w różnych architekturach.Więcej informacji na temat intrinsics na procesor określonego elementu docelowego można znaleźć w dokumentacji producenta.

Zobacz też

Informacje

Słów kluczowych języka C++

Inne zasoby

Odwołania monter RAMIĘ

Makro Microsoft Assembler odniesienia

C Run-Time Library Reference