compiler-optimization

    2

    2답변

    -O0, -O1, -O2 및 -O3에 대해 동일한 최적화 프로그램을 컴파일했습니다. 나는 gcc와 icc를 모두 사용했다. 아래에서 make 파일의 일부를 볼 수 있습니다 : build-gcc-O3: CXX = g++ build-gcc-O3: BIN_POST_NAME = -gcc-O3 build-gcc-O3: OPT_FLAGS = -O3 build-g

    0

    1답변

    들소에있는 ASN.1 컴파일러에 문제가 있습니다. OctetStringType : OCTET STRING Constraint { $$ = new OctetString($3); } | OCTET STRING '{' NamedOctetList '}' Constraint { $$ = new OctetString($6); }

    1

    1답변

    assert*은 -O으로 버려지지만 precondition*은 -Ounchecked이 설정되어 있지 않으면 유지된다는 설명을 찾을 수 있습니다. 그러나 릴리스 빌드의 새로운 기본값은 whole-module optimization-wmo입니다. 전체 모듈 최적화를 사용할 때 precondition* 어설 션이 유지됩니까?

    3

    1답변

    오버로드 된 접미사 연산자를 최적화하고 접두어 연산자로 바꿀 수 있습니까? 다음 코드에서 대부분의 컴파일러는 ++i으로 i++ 치료와 같은 어셈블리를 생성, 예를 들어 (컴파일러 기능 과부하가 무엇을 알고있는 경우). for(int i=0; i<5; i++) printf("*"); 그러면 다음 코드도 동일하게 적용될 수 있습니까? class I

    2

    1답변

    나는 순간에 약간의 형식화 된 라켓을 배우고 그리고 난 다소 철학적 딜레마가 있습니다 라켓는 언어 개발 프레임 워크라고 주장하고 형식화 된 라켓은 그 위에 구현 하나 개의 언어입니다. 설명서에 따르면 유형이 사용 되었기 때문에 컴파일러는 더 나은 최적화를 수행 할 수 있습니다. 구체적인 질문 : 이러한 최적화는 어디에서 발생합니까? 컴파일에서 1)/확장 언

    42

    0답변

    내가이 예를 단지 int에, 숫자와 같은 형식을 취하는 AsIterator 템플릿 클래스가 최적화 된 쓰레기를 반환하고, 반복자 (++ 및 -- 증가로 변환하고 수를 감소하고, operator* 그것에 대한 참조). 그것이 std::reverse_iterator에 랩 및 최적화 (-O 충분)로 컴파일하지 않는 이상 이 잘 작동합니다. 이진을 최적화하면 컴파

    2

    3답변

    편집 : 이 질문은 GetType()이 문자열을 반환한다는 오해에 근거합니다. 나는이 문제가 C#의 작동 원리를보다 잘 이해하려고 노력하고 있으므로이 질문은 실용적인 것보다 이론적이다. 내가 이해하는 것처럼 값 유형에서 GetType을 호출하려면 복싱이 필요하고 메서드를 호출해야합니다. 값 유형을 상속 할 수 없기 때문에 유형은 컴파일 타임에 알려 지므로

    6

    1답변

    Visual C++ (VS2017 RC)에 의해 생성 된 코드가 간단한 경우에 동적 분기 (가상 호출)를 볼 때 매우 놀랐습니다. 더 devirtualization가 발생하지 않는 것 같습니다, 임시 및 회원의 경우와 https://godbolt.org/g/RmUku2 : struct Base { virtual void foo() = 0; };

    0

    2답변

    이 질문은 순전히 호기심에서 벗어 났으며 대답은 컴파일러에 달려 있다고 확신합니다. 이것은 또한 유지 보수가 불가능한 코드로 이어질 극 미세 최적화입니다. CPU는 분명히 각 계산을 수행하고 그것을 어딘가에 저장해야하기 때문에 기능적으로 동일 할 수도 있습니다. 더 적은 변수를 사용하면 본질적으로 빠른 실행 코드로 이어질 지 궁금합니다. 예를 들어, 긴 계

    0

    1답변

    내 질문은 CUDA 응용 프로그램을 작성하는 것이 다소 간단하지만 내 주 컴퓨터가 Windows PC (Visual Studio 2013)이므로 거기에서 응용 프로그램을 개발했습니다. 하지만 최종 응용 프로그램은 * nix 서버에 배포 될 것입니다. 내 질문은 : 는 /오이이 (내장 함수를 사용) 내 레지스터 사용을 짜내 관리와 비주얼 스튜디오 2013 o