タグ

c++とcompilerに関するlizyのブックマーク (18)

  • オーバーライドされた仮想関数にまつわる最適化 - Qiita

    はじめに あるクラスから派生したクラスで、基底クラスのメソッドをオーバーライドしたとする。この時、派生クラスがコンパイル時にわかっているときに、コンパイラはそれを認識して最適化できるか試してみた。 使うコンパイラは以下の通り。 g++ (Homebrew GCC 7.3.0_1) 7.3.0 clang++ Apple LLVM version 9.1.0 (clang-902.0.39.2) icpc (ICC) 18.0.1 20171018 ただし、インテルコンパイラについては最後でちょっと触れるだけにする。 ケース1: 静的な宣言 こんなコードを考える。

    オーバーライドされた仮想関数にまつわる最適化 - Qiita
  • GCC 6.1がリリース - C++17新機能,OpenMPフルサポート,OpenACCサポート向上

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    GCC 6.1がリリース - C++17新機能,OpenMPフルサポート,OpenACCサポート向上
  • 「GCC 6.1」リリース、C++14がデフォルトに | OSDN Magazine

    GNU ProjectのGCC開発チームは4月27日、「GNU Complier Collection(GCC) 6.1」を公開した。6系初のリリースとなり、C++14がデフォルトとなるなどの変更が加わっている。 GNU Complier Collection(GCC)はC/C++/Objective-C、Fortran、Java、Ada、Goなどの言語に対応するコンパイラ集。当初GNU Operating System向けのコンパイラとして開発されたという経緯を持つ。 GCC 6.1は、2015年4月に最初のリリースが公開されたGCC5系に続く最新版となる。5系の最新版は2015年12月に公開された5.3。C++フロントエンドのデフォルトが、これまでのC++98からC++14に変更された。古いC++向けコードについては明示的に使用するC++標準を指定するか、コードの修正が必要としている

    「GCC 6.1」リリース、C++14がデフォルトに | OSDN Magazine
  • 「LLVM 3.4」リリース、C++14の全仕様をサポートへ | OSDN Magazine

    コンパイラ環境LLVM(Low Level Virtual Machine)を開発するLLVM Projectは6月18日、最新版となる「LLVM 3.4」をリリースした。C/C++フロントエンド「Clang」も新しくなり、自動フォーマットツールなどが加わっている。 LLVMは強力な最適化機能を特徴とするコンパイラフレームワーク。イリノイ大学の研究プロジェクトとしてスタートしたもので、任意のプログラム言語の静的/動的コンパイルをサポートするコンパイラの構築を目指している。ソースコードやターゲットに依存しないコアライブラリを中心に、C/C++/Objective-CコンパイラのClang、GCCと連携してAdaやFortranなどGCCがサポートする言語をLLVMでコンパイル可能にする「dragonegg」など多数のサブプロジェクトを持つ。 LLVM 3.4は2013年6月に公開されたバージ

    「LLVM 3.4」リリース、C++14の全仕様をサポートへ | OSDN Magazine
  • PlayStation 4、開発にはLLVM Clang

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. 11月6日から7日(米国時間)にかけてサンフランシスコで開催された「2013 LLVM Developers' Meeting」におけるプレゼンテーションのようすがサイトにアップロードされた。Sony Computer EntertainmentのPaul T. Robinson氏がPlayStation 4の開発環境について発表しており、コンパイラインフラストラクチャとしてLLVM Clangを採用していること、採用に至るまでの検討事項や、結果としてどのような利点が得られたかを説明している。 PlayStation 4の開発にはLLVM

  • Life with Cygwin 27: Cygwin 64 と gcc 4.8.1

    27. Cygwin 64 と gcc 4.8.1 2013.8.13 (鈴) 27.1 はじめに 27.2 64 ビット版 Cygwin のインストール 27.3 LP64 データモデル 27.4 gcc 4.8.1 による C++11 27.5 gcc 4.8.1 による Fortran 95 27.6 MinGW gcc と libstdc++, libfortran を探して 27.7 おわりに 27.1 はじめに 先月下旬 Cygwin の新時代を画するリリースがありました。 初の公式 64 ビット版リリース [cygwin.com] です。 いよいよ Cygwin プログラムでも 64 ビット版 Windows の広大なメモリ空間を利用できるようになりました。 32 ビット版 Cygwin の gcc がまだ 4.7.3 なのに対して 64 ビット版 Cygwin の gcc

  • ClangがC++11を完全実装! 繰り返す、C++11を完全実装

    [Phoronix] LLVM's Clang Compiler Is Now C++11 Feature Complete C++11 support is now feature-complete. · e6e68b5 · llvm-mirror/clang · GitHub 3時間前のコミットにより、Clangは晴れてC++11規格を完全に実装した。その通り、完全にすべて実装した。 コミットは、Inheriting Constructorsとthread_localの機能を有効にする変更だ。 もちろん、まだ実装にバグは残っているだろうし、規格上のバグもあるので、開発に終わりはない。ただし、今日は記念すべき日である。 static_puts said... そうすると、ますますC++11の重要性が高まってきますね! 「寄付のお願い」の方にも書かせていただいたのですが、書籍の執筆への寄

  • Microsoft が C++11 準拠を拡大した新コンパイラを発表

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Microsoft が C++11 準拠を拡大した新コンパイラを発表
    lizy
    lizy 2012/11/10
    もう全然ついて行けてないな……
  • LLVM 3.1/Clang 3.1登場、C++11のコア機能をほぼサポート | OSDN Magazine

    LLVM開発チームは5月22日、コンパイラ環境「LLVM(Low Level Virtual Machine) 3.1」を公開した。同時にC/C++フロントエンドの「Clang 3.1」もリリースされている。リリースではC++11のサポートが強化され、ほぼすべての機能に対応した。 LLVMはコンパイラを実装するためのインフラストラクチャを提供するもので、コアとなる「LLVM Core」と、LLVM Coreを使用する「Clang」などのコンパイラフロントエンド、オプティマイザや各種ライブラリなどから構成されている。 LLVM 3.1は約6ヶ月に渡る開発期間を経てのリリースとなった。大きな特徴としては、C/C++向けの高速なメモリエラー検出「AddressSanitizer」の導入、MachineInstrのバンドルがある。また、ARMマクロアセンブラの統合によりARMコンパイルが高速化し

    LLVM 3.1/Clang 3.1登場、C++11のコア機能をほぼサポート | OSDN Magazine
  • GitHub - emscripten-core/emscripten: Emscripten: An LLVM-to-WebAssembly Compiler

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - emscripten-core/emscripten: Emscripten: An LLVM-to-WebAssembly Compiler
    lizy
    lizy 2012/03/07
    c/c++ -> javascript
  • LLVM 3.0登場 - 新レジストリアロケータ実現、さらに高速化

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMプロジェクトは12月1日(米国時間)、LLVMの最新版となる「LLVM 3.0」を公開した。LLVMはOSSとして開発されているコンパイラインフラストラクチャ。当初研究目的でスタートしたプロジェクトだが、以後急速に成長。現在ではC/C++/Objective-Cコンパイラをはじめさまざまなコンパイラやツールチェーン、ライブラリ、サブプロジェクトなどを抱える新進気鋭のプラットフォームとなっている。大手ソフトウェアベンダも活用するなど注目度の高い技術となっている。 LLVM 3.0は2.9から半年の開発期間を経て公開された最新版。主な

  • gccとclangのC++0xサポートの比較

    C++0xの規格はほぼ固まり、もはや変更されることはない。恐らく、このまま規格制定されるものと思われる。さて、今C++の主要なコンパイラーを上げるとすると、gccとclangをおいて他にはない。MSVCはオモチャだ。右の両コンパイラーは、C++0xの新機能を実装し始めている。もちろん、まだ不完全な実装も多いが、とりあえず遊べる程度には実装できている機能も多いので、比較してみることにする。 gccのC++0xサポート状況は、以下のページに簡易な一覧がある。 C++0x Support in GCC - GNU Project - Free Software Foundation (FSF) clangのC++サポート状況は、以下のページに簡易な一覧がある。 Clang - C++ and C++'0x Status 面白いことに、どちらか片方のコンパイラーでしか実装されていない機能が、結構あ

  • clangでソフトウェアをビルドしC++を知る - 射撃しつつ前転 改

    clangというのはllvm向けのC/C++/Obj-Cのためのフロントエンドで、最近はGoogle ChromeとかFirefoxもコンパイルできるレベルにまで成熟してきているらしい。 いくつかのブログで紹介されているのを見ても、ふーん、ぐらいにしか思っていなかったのだが、あんな大規模なソフトウェアがコンパイルできるというのは、考えてみるとすごいことである。大事なことなので強調しておくが、すごいことである。十分に実用的なレベルに到達していることだ。ビルドも早いし生成されたコードもg++と同程度には速いというし、試してみる必要がある。 という訳で、いくつか実際にソフトウェアをビルドしてみた。試してみた限りでは、 libstdc++のtr1/unordered_mapがビルドできない C++のコーナーケースで、clangが許容しないものが多い といった問題があったが、割とどれもすんなりとコン

    clangでソフトウェアをビルドしC++を知る - 射撃しつつ前転 改
    lizy
    lizy 2011/04/19
    コンパイラのセカンドオピニオン
  • でっつ :: Entries :: お母さんみたいにもっと3ヶ月前に教えて欲しい

    お母さんみたいにもっと3ヶ月前に教えて欲しい Posted by admin on the 28th of 3 月, 2008 at 12:00 am under 未分類.    This post has no comments. ccacheを使えば、C++のコードのコンパイルが死ぬほど遅くても大丈夫という情報が。これはheaderファイルなど頻繁には変更しないような部分のコンパイル結果を自動的にキャッシュしてくれるソフトウエアだ。よっぽどのことがないかぎり、一人で開発しているコードでは、includeする色々なheaderファイルのほうが、自分で入力するソースコードより多い。しかも、template programmingを使いまくるBoost Spiritのようなinculdeするheaderが大きくて、構文解析の処理量が多いライブラリを利用していると、明らかにheaderのせいで

    lizy
    lizy 2010/09/14
    プリコンパイル済みヘッダよりもいいのかな
  • GCC開発者ら、GCCの開発にC++を導入することを決定、利用する機能を制限して複雑さを軽減 | OSDN Magazine

    コンパイラ「GNU Compiler Collection(GCC)」の開発者は5月30日、開発元のFree Software Foundation(FSF)とGCC Steering CommitteeがGCCでのC++利用を承認する決定を下したことを発表した。目的は「ユーザーに優れたコンパイラを提供するため」とし、「GCCをC++コードベースにすることが目的ではない」と説明している。 GCCはCおよびC++Javaなど多数の言語に対応するコンパイラ。GCCそのものはCで実装されているが、これからはC++による機能実装も許可される。ただし、C++に精通していないGCC開発者に配慮するため、利用するC++の機能に制限を設けるべきだとGCC開発者は記している。その後、適切だと判断されれば利用できる機能を拡充していくという方針を提案している。 GCCの開発者であるMark Mitchell氏

    GCC開発者ら、GCCの開発にC++を導入することを決定、利用する機能を制限して複雑さを軽減 | OSDN Magazine
  • GCC開発におけるC++の利用が承認される | スラド デベロッパー

    GNU Compiler Collection(GCC)メーリングリストへの投稿によると、GCC開発におけるC++の利用をGCC Steering CommitteeおよびFree Software Foundationが承認したとのこと(家記事、SourceForge.JP Magazine記事)。 GCCはCで書かれているが、今回の決定により今後はC++での開発が可能になる。現時点ではどのサブセットを利用するかは未定とのこと。 この件をメーリングリストに投稿したCodeSourceryのMark Mitchell氏によると、C++の採用はより良いコンパイラを作るためとのことで、C++の利用それ自体が目的ではないという。同氏はC++に精通していない開発者を考慮し、当初は利用できるC++の機能を「Cプログラマーに理解し易く、かつC++初心者が間違い難い」ものに制限したほうが良いと提言して

  • GCC 4.5.0登場、C++0xサポート改善 | エンタープライズ | マイコミジャーナル

    The GNU Compiler Collection 14日(米国時間)、GCCの最新版となるGCC 4.5.0がリリースされた。GCC 4.4.0のリリースから1年経てのメジャーアップグレードバージョンとなる。バグ修正や最適化の改善以外にも新機能の追加や新しいアーキテクチャのサポートが実現されている。アクティブではない移植に対しては同バージョンで非推奨が指示されており、次のメジャーアップグレードバージョンではサポートの廃止が予定されている。GCC 4.5.0における主な特徴は次のとおり。 GCC 4.5.0の特徴 C++0xサポートの改善 (ラムダ式のサポート、explicit方変換処理のサポート、raw stringのサポート)。 libstdc++ランタイムライブラリへプロファイルモードの追加。 コンパイル時により複雑な算術を最適化処理するためにMPCライブラリを使用。 Graph

  • コンパイラを変えるだけでパフォーマンス向上、インテル コンパイラーの実力を見る | OSDN Magazine

    「よりパフォーマンスの高いプログラムを作成するにはアセンブラを駆使すべし」という話を聞いたことがある人も多いだろう。これは、C/C++言語で記述されたプログラムには冗長な部分があるため、ノウハウを持つプログラマがアセンブラでチューニングしたプログラムの方が高いパフォーマンスを得られる、ということであった。しかし、現在では必ずしもこのことは当てはまらなくなっている。その理由は、コンパイラの進化と、CPUおよびPCアーキテクチャの複雑化にある。 最近のコンパイラのほとんどは最適化機能と呼ばれる、ソースコードをより効率の良い形に自動変換する機能を備えている。基的な最適化の例としては、プログラム内で実際には使われていない処理の省略や、冗長なforループの自動展開などが挙げられるが、最近ではこのほかにも高速に処理を行えるようプログラムの実行順序を入れ替えたり、頻繁に呼び出される関数を自動的にインラ

    コンパイラを変えるだけでパフォーマンス向上、インテル コンパイラーの実力を見る | OSDN Magazine
  • 1