Add Position-independent Code model Module API.
authorJustin Hibbits <jrh29@alumni.cwru.edu>
Fri, 7 Nov 2014 04:46:10 +0000 (04:46 +0000)
committerJustin Hibbits <jrh29@alumni.cwru.edu>
Fri, 7 Nov 2014 04:46:10 +0000 (04:46 +0000)
commit771c132e0f0590f2c82f048998d33a62d8c3f636
treef89d54a4401d126c65b1a64a2a0fda0c2b690cd9
parent97ae14e166caa3342cba36ddcee7250ab13f4f69
Add Position-independent Code model Module API.

Summary:
This makes PIC levels a Module flag attribute, which can be queried by the
backend.  The flag is named `PIC Level`, and can have a value of:

  0 - Backend-default
  1 - Small-model (-fpic)
  2 - Large-model (-fPIC)

These match the `-pic-level' command line argument for clang, and the value of the
preprocessor macro `__PIC__'.

Test Plan:
New flags tests specific for the 'PIC Level' module flag.
Tests to be added as part of a future commit for PowerPC, which will use this new API.

Reviewers: rafael, echristo

Reviewed By: rafael, echristo

Subscribers: rafael, llvm-commits

Differential Revision: http://reviews.llvm.org/D5882

llvm-svn: 221510
llvm/include/llvm/IR/Module.h
llvm/include/llvm/Support/CodeGen.h
llvm/lib/IR/Module.cpp
llvm/test/Linker/Inputs/module-flags-pic-1-b.ll [new file with mode: 0644]
llvm/test/Linker/Inputs/module-flags-pic-2-b.ll [new file with mode: 0644]
llvm/test/Linker/module-flags-pic-1-a.ll [new file with mode: 0644]
llvm/test/Linker/module-flags-pic-2-a.ll [new file with mode: 0644]