タグ

gccに関するembeddedのブックマーク (74)

  • cauldron2014 - GCC Wiki

    Date: July 18 to 20, 2014. Location: University of Cambridge's Computer Laboratory in the William Gates Building. (map1, map2) Registration Fee: No charge. Submission deadline: 31 March 2014. We will also accept "last minute" BoF/talks at the conference, if there is still room available. Slides and Notes Schedule Abstracts Notes from GNU Cauldron 2014 The videos for all recorded presentations are

    embedded
    embedded 2014/06/04
    GNU Toolsの開発者のイベント。面白そうな話題がたくさんある。
  • Linktime optimization in GCC, part 2 - Firefox

    This time I will write about building Firefox with LTO. Firefox is one of largest binaries on my hard drive (beaten only by Chromium) so it is an excellent stress test. Taras Glek and I started to work on getting Firefox to build well in 2009 (see original paper from 2010), however for all those years I was mostly chasing correctness and compile time/memory usage issues. Markus Trippelsdorf was in

    Linktime optimization in GCC, part 2 - Firefox
    embedded
    embedded 2014/04/24
    FirefoxをLTO(Linktime optimization)でビルドする話。注意点、コンパイル時間、コンパイル時のリソース消費、ファイルサイズ、ベンチマークなどのグラフあり。
  • Linktime optimization in GCC, part 1 - brief history

    Link-time optimization (LTO) is one of the most actively developed features of GCC. Since 2010, I am working on getting LTO to work well with real world applications and with GCC-4.9 release candidate out, perhaps it is a good time to share my experiences. I plan to write about getting Firefox (Update: part 2 is here), Libreoffice, Chromium and other large applications to work with LTO. This will

    Linktime optimization in GCC, part 1 - brief history
    embedded
    embedded 2014/04/24
    gccの歴史。主に最適化に関して。
  • ARM gcc バッドノウハウ集: char 型

    次のページ 前のページ 目次へ 6. char 型 さて,ここらから ARM toolchain 特有の話題に入ります. ARM gcc では,char 型で宣言した変数は unsinged char として扱われます. x86 などの他の gcc では signed char として扱われます. 普通はこちらの方ですね. char が符号あり・なし,ということ自体は C の規約では「実装依存」 であるため,C としては間違っていません. が,世の中のほとんどの C プログラムは char が符号つきであるという 前提で書かれていますし,読者の認識もそうだと思います. というわけで,既存の C のプログラムをコンパイルして使用しようとする場 合,これが問題となる場合があります. 6.1 例 以下のようなプログラムをコンパイルし,実行してみます. #include <stdio.h> mai

    embedded
    embedded 2014/01/18
    「ARM gcc では,char 型で宣言した変数は unsinged char として扱われます. x86 などの他の gcc では signed char として扱われます.」歴史的な事情によるらしい。
  • 革命の日々! a.out からコンパイラバージョンを取得する方法

    忘れないうちにメモ Linuxで普通に実行ファイルつくると.commentセクションとデバッグインフォメーションの 二箇所にコンパイラのバージョンが入ってる。これはobjdumpやreadelfで観測できる。 なぜこんなテクニックを知る必要があるかというとバグ報告で嘘のコンパイラバージョンを 報告してくる輩はけしてレアではないからである 1つめ。.comment セクションを objdumpで表示 % objdump -s -j .comment a.out a.out: file format elf64-x86-64 Contents of section .comment: 0000 4743433a 2028474e 55292034 2e342e36 GCC: (GNU) 4.4.6 0010 20323031 32303330 35202852 65642048 2012030

    革命の日々! a.out からコンパイラバージョンを取得する方法
  • OpenACC 2.0 With GPU Support Coming To GCC - Phoronix

    OpenACC 2.0 With GPU Support Coming To GCC Written by Michael Larabel in GNU on 14 November 2013 at 04:17 PM EST. 4 Comments It looks like GCC will have the first open-source implementation of the OpenACC 2.0 standard and it will support GPU acceleration! Last year I wrote how OpenACC hasn't been loved by open-source compilers. OpenACC is the parallel computing programming standard out of NVIDIA,

    OpenACC 2.0 With GPU Support Coming To GCC - Phoronix
    embedded
    embedded 2013/11/16
    gccでGPU向けの並列プログラミングができるようになるのかな。
  • nothingcosmos wiki

    2016/05/04 LLVMのビルド方法 2014/04/08 OpenJDKのビルド方法 2014/02/23 作成したスライド 2014/02/22 JVM(HotSpot) VS. Dart VM 2014/02/16 RevisionLog32000台 DartVMのリビジョンログ 2014/01/11 RevisionLog31000台 2013/12/23 RevisionLog30000台 LLVMとの連携方法 2013/12/09 LLVMに関して LLVMのデバッグ方法 SSA形式 2013/11/10 RevisionLog29000台 2013/10/21 JITコンパイラ メニュー 自動並列化 ベクトル化 GCCに関して 2013/10/20 RevisionLog28000台 2013/09/28 RevisionLog27000台

    embedded
    embedded 2013/11/15
    いまどきのコンパイラの情報が豊富。
  • C 言語 マクロ講座 # ## 編: uyota 匠の一手

    # と ## はマクロ関数で使う。 # と ## 共に古くからマクロで実装されている。ところが、これを知らない人達がとても多い。 十年、二十年と C 言語を使ってきたという人でも知らないと言う人が結構いる。これを知らないから、余計なコードを書き、バグを増やし続けるのである。 高級言語と呼ばれる言語の中でも、単純な部類に入る C 言語。その C 言語よりも単純なマクロ言語の構文を把握していないのである。マクロ自体では、できることもたかが知れている。マクロでできるのは、ごく限られた置換や条件分岐処理程度のみだ。C 言語の構文だけでは、それこそ複数のファイルにコードを分けて書くこともできない。 ライブラリを作るのなどは、それこそ不可能だ。 しかし、C 言語はその欠点をマクロ言語を使い前処理することにより、強力な力を得た。C 言語以降もいくつもの高級言語が生まれてきたが、前処理を組み込んである言語

    embedded
    embedded 2013/10/11
    #は文字列に変換、##は識別子を連結。
  • C言語系/memos/gcc/関数の属性機能("__attribute__") - Glamenv-Septzen.net

    id: 577 所有者: msakamoto-sf 作成日: 2010-02-05 15:10:42 カテゴリ: C言語 [ Prev ] [ Next ] [ C言語系 ] GCCで提供されている関数の"__attribute__" 機能について極々簡単に紹介する。基的に unixwiz.net の "Using GNU C __attribute__" のざっくりとした要約になっている。なお、ここで紹介している機能を有効にするには-Wallオプションを指定する必要がある。 ※動作確認はCentOS5.2上のgcc-4.1.2, binutils-2.17.50.0.6 上で行っている。 __attribute__ format printfやscanfのような、可変長引数群を書式指定文字列に埋め込んだりする関数で、書式指定文字列と可変長引数群の組み合わせを「コンパイル時に」チェックで

    embedded
    embedded 2013/09/17
    gccの__attribute__
  • cauldron2013 - GCC Wiki

    Date: July 12 to 14, 2013. Location: Google Headquarters Building 1200, 1200 Charleston Rd, Mountain View, California, USA http://goo.gl/maps/y4Kei Registration Fee: No charge. This event is completely funded by Google. WE HAVE REACHED CAPACITY. We cannot accept any more registrations. Sorry. Submission deadline: 28 February 2013. Note: we will also accept "last minute" BoF/talks at the conference

    embedded
    embedded 2013/08/20
    GNU Toolsのテクニカルカンファレンスが開催されていた。
  • http://blog.monoweb.info/blog/2012/07/14/c99-array/

    embedded
    embedded 2013/07/30
    混ぜるな危険。
  • ARM NEON vectorization failure

    embedded
    embedded 2013/06/26
    ARMのNEONの浮動小数点演算はIEEE754標準の全てを満たしていない。オートベクタライズの最適化でNEONの浮動小数点演算を使って欲しい場合は -funsafe-math-optimizations のコンパイルオプションを追加する。
  • Inline Assembly - OSDev Wiki

  • Embed with GNU - Libgloss

    embedded
    embedded 2013/04/26
    newlibの中にあるlibglossは"Gnu Low-level OS support"の意味だった。
  • ホワット・ア・ワンダフル・ワールド GNU C 拡張を使って関数のコールグラフをプロファイルする

    今スゲー酔っ払ってるので,メモだけ.指がうまく動かなくてタッチタイプがミスる.てか,うちのマウス,ゴミがつまりすぎだよなぁ.さっぱり回らない. きっかけは,rayfill さんのコメント. コールグラフ 呼び出しに関する情報ならコンパイル時に-pgつけてプロファイラまわせばでませんでしたっけ? x86環境でlinuxとかならValgrindのプラグインのCallgrindでdotファイル & Graphviz経由だったかでコールグラフが書けたと思います。 gcc拡張使ったこういう手(http://www-06.ibm.com/jp/developerworks/linux/050722/j_l-graphvis.shtml)もあるようです。 finstrument-functions オプションの説明とかは,件の ibmdeveloperworks か,BINARY HACKS の 「HA

    embedded
    embedded 2013/04/11
    実行ファイルのシンボルをdladdr(3)で検索可能にするためには、リンク時に -rdynamic オプションをつける。
  • Return Address (Using the GNU Compiler Collection (GCC))

    6.52 Getting the Return or Frame Address of a Function ¶ These functions may be used to get information about the callers of a function. Built-in Function: void * __builtin_return_address (unsigned int level) ¶ This function returns the return address of the current function, or of one of its callers. The level argument is number of frames to scan up the call stack. A value of 0 yields the return

    embedded
    embedded 2012/12/19
    関数の戻り番地を得るgccのビルトイン関数
  • 普通のやつらの下を行け: assert_caller() - bkブログ

    普通のやつらの下を行け: assert_caller() 以前に、低レベルプログラミングを愛好する知人が「普通のやつらの下を行け」を口癖にしていました。当時は何を言っているのかと聞き流していましたが、自分も最近になってようやく低レベルプログラミングのおもしろさがわかってきました。今回は「普通のやつらの下を行け」企画の第一弾として assert_caller() なるものを作ってみたいと思います。 assert_caller() とは assert_caller() とは、特定の関数からの関数呼び出しだけを通すためのアサーションです。たとえば、次のように foo() の先頭で assert_caller(main) と書いた場合、 foo() は main() からしか呼び出せなくなります。他の関数から foo() を呼び出した場合はエラーメッセージとともに異常終了します。 void foo

    embedded
    embedded 2012/12/12
    「assert_caller() とは、特定の関数からの関数呼び出しだけを通すためのアサーションです。」
  • スレッドローカルストレージ(TLS) - Linuxの備忘録とか・・・(目次へ)

    スレッドはグローバルは変数は共有しますが、マルチスレッドアプリケーションにおいて、スレッド固有のデータを保持したい場合があります。それを実現するのが、スレッドローカルストレージ(TLS)です。 func()を2つのスレッドとして作成します。そこでは、__thread int aとint bをインクリメントした値を表示しています。最初のスレッドではa = 1 b=1、次のスレッドではa = 1 b=2となっています。int aとしたならa=2なるところです。すなわち__thread int aはスレッド固有の変数というわけです。 #include <stdio.h> #include <pthread.h> __thread int a = 0; int b = 0; void *func(void *arg) { a++; b++; printf("a = %d b=%d\n", a, b

    embedded
    embedded 2012/12/01
    TLSのgcc, linuxのx86での実装について。
  • The Binutils Archives

    embedded
    embedded 2012/09/29
    The binutils mailing list archives
  • Link-time optimization for the kernel [LWN.net]

    This article brought to you by LWN subscribersSubscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible. The kernel tends to place an upper limit on how quickly any given workload can run, so it is unsurprising that kernel developers are always on the lookout for ways t

    embedded
    embedded 2012/09/01
    LinuxカーネルにgccのLTO(Link Time Optimization)を適用してみたという話。