- Jan 02, 2013
-
-
Chandler Carruth authored
llvm-svn: 171363
-
- Dec 20, 2012
-
-
Eli Bendersky authored
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056754.html The proposal and implementation are fully documented here: https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/aligned-bundling-support-in-llvm Tests will follow shortly. llvm-svn: 170718
-
- Dec 16, 2012
-
-
Reed Kotler authored
Mips16 is really a processor decoding mode (ala thumb 1) and in the same program, mips16 and mips32 functions can exist and can call each other. If a jal type instruction encounters an address with the lower bit set, then the processor switches to mips16 mode (if it is not already in it). If the lower bit is not set, then it switches to mips32 mode. The linker knows which functions are mips16 and which are mips32. When relocation is performed on code labels, this lower order bit is set if the code label is a mips16 code label. In general this works just fine, however when creating exception handling tables and dwarf, there are cases where you don't want this lower order bit added in. This has been traditionally distinguished in gas assembly source by using a different syntax for the label. lab1: ; this will cause the lower order bit to be added lab2=. ; this will not cause the lower order bit to be added In some cases, it does not matter because in dwarf and debug tables the difference of two labels is used and in that case the lower order bits subtract each other out. To fix this, I have added to mcstreamer the notion of a debuglabel. The default is for label and debug label to be the same. So calling EmitLabel and EmitDebugLabel produce the same result. For various reasons, there is only one set of labels that needs to be modified for the mips exceptions to work. These are the "$eh_func_beginXXX" labels. Mips overrides the debug label suffix from ":" to "=." . This initial patch fixes exceptions. More changes most likely will be needed to DwarfCFException to make all of this work for actual debugging. These changes will be to emit debug labels in some places where a simple label is emitted now. Some historical discussion on this from gcc can be found at: http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00623.html http://gcc.gnu.org/ml/gcc-patches/2008-11/msg01273.html llvm-svn: 170279
-
- Dec 11, 2012
-
-
NAKAMURA Takumi authored
llvm-svn: 169817
-
Rafael Espindola authored
llvm-svn: 169812
-
- Dec 10, 2012
-
-
Bill Wendling authored
The linker will call `lto_codegen_add_must_preserve_symbol' on all globals that should be kept around. The linker will pretend that a dylib is being created. <rdar://problem/12528059> llvm-svn: 169770
-
NAKAMURA Takumi authored
llvm-svn: 169724
-
Bill Wendling authored
llvm-svn: 169720
-
- Dec 08, 2012
-
-
Bill Wendling authored
This function sets the `_exportDynamic' ivar. When that's set, we export all symbols (e.g. we don't run the internalize pass). This is equivalent to the `--export-dynamic' linker flag in GNU land: --export-dynamic When creating a dynamically linked executable, add all symbols to the dynamic symbol table. The dynamic symbol table is the set of symbols which are visible from dynamic objects at run time. If you do not use this option, the dynamic symbol table will normally contain only those symbols which are referenced by some dynamic object mentioned in the link. If you use dlopen to load a dynamic object which needs to refer back to the symbols defined by the program, rather than some other dynamic object, then you will probably need to use this option when linking the program itself. The Darwin linker will support this via the `-export_dynamic' flag. We should modify clang to support this via the `-rdynamic' flag. llvm-svn: 169656
-
Jim Grosbach authored
It was a nasty oversight that we didn't include this when we added this API in the first place. Blech. rdar://12839439 llvm-svn: 169653
-
- Dec 04, 2012
-
-
Chandler Carruth authored
Again, tools are trickier to pick the main module header for than library source files. I've started to follow the pattern of using LLVMContext.h when it is included as a stub for program source files. llvm-svn: 169252
-
- Nov 29, 2012
-
-
Pedro Artigas authored
start up and clean up module passes, now that ASAN and TSAN are fixed the tests pass llvm-svn: 168905
-
- Nov 27, 2012
-
-
Owen Anderson authored
Revert r168635 "Step towards implementation of pass manager with doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model". It appears to have broken at least one buildbot. llvm-svn: 168654
-
Owen Anderson authored
Step towards implementation of pass manager with doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model Patch by Pedro Artigas, with feedback from by Chandler Carruth. llvm-svn: 168635
-
- Nov 24, 2012
-
-
Benjamin Kramer authored
Necessary to give disassembler users (like darwin's otool) a possibility to dlopen libLTO and still initialize the required LLVM bits. This used to go through libMCDisassembler but that's a gross layering violation, the MC layer can't pull in functions from the targets. Adding a function to libLTO is a bit of a hack but not worse than exposing other disassembler bits from libLTO. Fixes PR14362. llvm-svn: 168545
-
- Nov 15, 2012
-
-
Owen Anderson authored
Add doInitialization and doFinalization methods to ModulePass's, to allow them to be re-initialized and reused on multiple Module's. Patch by Pedro Artigas. llvm-svn: 168008
-
- Oct 23, 2012
-
-
Kevin Enderby authored
Per the October 12, 2012 Proposal for annotated disassembly output sent out by Jim Grosbach this set of changes implements this for X86 and arm. The llvm-mc tool now has a -mdis option to produced the marked up disassembly and a couple of small example test cases have been added. rdar://11764962 llvm-svn: 166445
-
- Oct 19, 2012
-
-
Nadav Rotem authored
llvm-svn: 166248
-
- Oct 18, 2012
-
-
Bob Wilson authored
The TargetTransform changes are breaking LTO bootstraps of clang. I am working with Nadav to figure out the problem, but I am reverting it for now to get our buildbots working. This reverts svn commits: 165665 165669 165670 165786 165787 165997 and I have also reverted clang svn 165741 llvm-svn: 166168
-
- Oct 16, 2012
-
-
Nadav Rotem authored
llvm-svn: 165997
-
- Oct 12, 2012
-
-
rdar://problem/12457841Bob Wilson authored
This is a temporary hack until Bill's project to record command line options in the LLVM IR is ready. Clang currently sets a default CPU but that isn't recorded anywhere and it doesn't get used in the final LTO compilation. llvm-svn: 165809
-
- Oct 10, 2012
-
-
Bill Wendling authored
llvm-svn: 165599
-
Bob Wilson authored
This reverts commit 165428 in an attempt to get our buildbots going. llvm-svn: 165574
-
- Oct 08, 2012
-
-
Bill Wendling authored
llvm-svn: 165428
-
Micah Villmow authored
llvm-svn: 165403
-
- Oct 04, 2012
-
-
Bill Wendling authored
file name if building Apple-style. llvm-svn: 165185
-
- Sep 06, 2012
-
-
-
Roman Divacky authored
llvm-svn: 163258
-
- Aug 21, 2012
-
-
Chad Rosier authored
PR9673 llvm-svn: 162284
-
- Aug 17, 2012
-
-
Bill Wendling authored
make it more consistent with its intended semantics. The `linker_private_weak_def_auto' linkage type was meant to automatically hide globals which never had their addresses taken. It has nothing to do with the `linker_private' linkage type, which outputs the symbols with a `l' (ell) prefix among other things. The intended semantic is more like the `linkonce_odr' linkage type. Change the name of the linkage type to `linkonce_odr_auto_hide'. And therefore changing the semantics so that it produces the correct output for the linker. Note: The old linkage name `linker_private_weak_def_auto' will still parse but is not a synonym for `linkonce_odr_auto_hide'. This should be removed in 4.0. <rdar://problem/11754934> llvm-svn: 162114
-
- Aug 09, 2012
-
-
Bill Wendling authored
llvm-svn: 161530
-
Bill Wendling authored
llvm-svn: 161529
-
- Aug 07, 2012
-
-
Bill Wendling authored
llvm-svn: 161356
-
- Aug 06, 2012
-
-
Bill Wendling authored
When the command line target options were removed from the LLVM libraries, LTO lost its ability to specify things like `-disable-fp-elim'. Add this back by adding the command line variables to the `lto' project. <rdar://problem/12038729> llvm-svn: 161353
-
- Jun 22, 2012
-
-
Evan Cheng authored
llvm-svn: 159028
-
- Jun 06, 2012
-
-
Benjamin Kramer authored
There are some that I didn't remove this round because they looked like obvious stubs. There are dead variables in gtest too, they should be fixed upstream. llvm-svn: 158090
-
- May 30, 2012
-
-
David Blaikie authored
This broke in r144788 when the CodeGenOpt option was moved from everywhere else (specifically, from addPassesToEmitFile) to createTargetMachine. Since LTOCodeGenerator wasn't passing the 4th argument, when the 4th parameter became the 3rd, it silently continued to compile (int->bool conversion) but meant something completely different. This change preserves the existing (accidental) and previous (default) semantics of the addPassesToEmitFile and restores the previous/intended CodeGenOpt argument by passing it appropriately to createTargetMachine. (discovered by pending changes to -Wconversion to catch constant->bool conversions) llvm-svn: 157705
-
- May 11, 2012
-
-
Rafael Espindola authored
llvm-svn: 156606
-
- Apr 16, 2012
-
-
Rafael Espindola authored
so we don't want it to show up in the stable 3.1 interface. While at it, add a comment about why LTOCodeGenerator manually creates the internalize pass. llvm-svn: 154807
-
- Apr 10, 2012
-
-
Bill Wendling authored
Revert the 'EnableInitializing' flag. There is debate on whether we should run that pass by default in LTO. llvm-svn: 154356
-