Evan Cheng
034261674b
Fix the ridiculous SubtargetFeatures API where it implicitly expects CPU name to
...
be the first encoded as the first feature. It then uses the CPU name to look up
features / scheduling itineray even though clients know full well the CPU name
being used to query these properties.
The fix is to just have the clients explictly pass the CPU name!
llvm-svn: 134127
2011-06-30 01:53:36 +00:00
Evan Cheng
b4dc8bdd22
Sink SubtargetFeature and TargetInstrItineraries (renamed MCInstrItineraries) into MC.
...
llvm-svn: 134049
2011-06-29 01:14:12 +00:00
Chad Rosier
6a40804696
Reinstate r133516 "Remove some unnecessary uses of c_str()." A trailing null
...
character in std::string was causing failures for a few ObjC and Obj-C++ tests
when -flto was enabled. Revision 133999 resolved this issue. Thanks Jay!
rdar://9685235
PR10210
llvm-svn: 134017
2011-06-28 18:26:12 +00:00
Jay Foad
fa97b8b8fa
PR10210: New method ConstantArray::getAsCString(). Use it in LTO to
...
avoid getting embedded trailing null bytes in std::strings.
llvm-svn: 133999
2011-06-28 08:24:19 +00:00
Chad Rosier
c4a49e5afd
Revert r133516 "Remove some unnecessary uses of c_str()."
...
This was causing compile-time failures for some of the Objc and Obj-C++
benchmarks. The specific errors were of the form: "ld: duplicate symbol …"
rdar://9660124
llvm-svn: 133955
2011-06-27 22:54:29 +00:00
Jay Foad
ea4f714a73
Remove some unnecessary uses of c_str().
...
llvm-svn: 133516
2011-06-21 15:36:24 +00:00
Chris Lattner
89036e6501
switch bugpoint and liblto to PassManagerBuilder.
...
llvm-svn: 131821
2011-05-22 00:20:07 +00:00
Rafael Espindola
2f2c3bf31f
Simplify the handling of pcrel relocations on ELF. Now we do the right thing
...
for all symbol differences and can drop the old EmitPCRelSymbolValue
method.
This also make getExprForFDESymbol on ELF equal to the one on MachO, and it
can be made non-virtual.
llvm-svn: 130634
2011-05-01 03:50:49 +00:00
Rafael Espindola
856ed14418
Remove unused argument.
...
llvm-svn: 129955
2011-04-21 23:39:26 +00:00
Nick Lewycky
08fa5e5ed3
Fix typo in comment.
...
llvm-svn: 129902
2011-04-21 01:54:08 +00:00
Chris Lattner
0304b82f80
Fix a ton of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129558
2011-04-15 05:18:47 +00:00
Devang Patel
0fda72d125
Update CMakeLists.txt
...
Patch by arrowdoger.
llvm-svn: 128719
2011-04-01 18:03:58 +00:00
Devang Patel
db381d9aff
Expoert c interface for disassembler.
...
llvm-svn: 128440
2011-03-29 00:01:39 +00:00
Rafael Espindola
1592f3ae24
Add a lto_codegen_compile_to_file to avoid producing a file, reading it to
...
memory and writing it back to disk.
llvm-svn: 128108
2011-03-22 20:57:13 +00:00
Rafael Espindola
9e0fcfc02b
We don't need a null terminator for the output file.
...
llvm-svn: 128098
2011-03-22 19:20:47 +00:00
Rafael Espindola
b0fe115914
Use lazy parsing in LTO. Unfortunately this is only a 3% time saving for
...
'ar'. Have to figure out how to make libLTO even lazier.
llvm-svn: 127901
2011-03-18 19:51:00 +00:00
Rafael Espindola
0e189f5304
Simplify the computation of undefined symbols. Instead of walking
...
functions and initializers, just report the declarations present in
the module.
The motivation is to open the way for using the lazy module parsing,
which should speed up clients that just want a symbol list (nm, ar).
This is slightly less precise, but since both -strip-dead-prototypes
and -globaldce are part of the standard pipeline, this shouldn't
change the result for clang/dragonegg produced binaries.
Any decl in an IL file was also put there because a FE expected it
to be necessary, so this should not be a problem for "-O0 -emit-llvm".
As a sanity check, I have bootstrapped clang on linux and built
firefox on both linux and darwin. A clang bootstrap on darwin
with LTO fails with or without this patch because, ironically,
the linker doesn't like the combination of dead_strip and LTO
when building libLTO.so :-)
llvm-svn: 127870
2011-03-18 05:12:38 +00:00
NAKAMURA Takumi
5327c64434
tools/lto/LTOModule.cpp: Eliminate an unused variable.
...
llvm-svn: 127859
2011-03-18 03:21:11 +00:00
Rafael Espindola
3ecf930d14
Use RequiresNullTerminator to create buffers without a null terminator
...
instead of copying.
llvm-svn: 127835
2011-03-17 22:18:42 +00:00
Rafael Espindola
8dab9a762b
Add support in the LTO library for loading an object from the middle
...
of an file.
llvm-svn: 127781
2011-03-17 00:36:11 +00:00
Oscar Fuentes
a153a45c99
Build LTO as a static library too.
...
llvm-svn: 127553
2011-03-12 22:01:36 +00:00
Oscar Fuentes
eef24d34e6
Build LTO as a static library too.
...
llvm-svn: 127549
2011-03-12 17:32:30 +00:00
Oscar Fuentes
471e660c5a
Update link components for llvm-dis and LTO.
...
llvm-svn: 127545
2011-03-12 16:48:49 +00:00
Oscar Fuentes
57a2625738
Add LTO and gold plugin to the CMake build. Linux-only, support for
...
other systems pending.
PR9456.
llvm-svn: 127466
2011-03-11 15:44:24 +00:00
Rafael Espindola
7f301833ee
Add a special streamer to libLTO that just records symbols definitions and
...
uses.
The result produced by the streamer is used to give the linker more accurate
information and to add to llvm.compiler.used. The second improvement removes
the need for the user to add __attribute__((used)) to functions only used in
inline asm. The first one lets us build firefox with LTO on Darwin :-)
llvm-svn: 126830
2011-03-02 04:14:42 +00:00
Rafael Espindola
58423e8aad
Switch LTO to use MC. This takes the linking of libxul.so from about 7m to
...
6m30.
llvm-svn: 126426
2011-02-24 21:04:06 +00:00
Rafael Espindola
5a77325398
Fix some memory leaks and avoid looking in the hash tables twice.
...
libxul links in 7m0.403s.
llvm-svn: 126085
2011-02-20 16:27:25 +00:00
Rafael Espindola
d3124f22fd
Preserve aliases if needed.
...
llvm-svn: 125439
2011-02-12 18:03:13 +00:00
Rafael Espindola
1f29f4f844
Fix a silly bug I introduced when dropping std::string.
...
llvm-svn: 125420
2011-02-12 00:19:56 +00:00
Rafael Espindola
bb94ca00f7
Remove std::string version of getNameWithPrefix.
...
llvm-svn: 125363
2011-02-11 05:23:09 +00:00
Rafael Espindola
43f9672afa
Don't open the file again in the gold plugin. To be able to do this, update
...
MemoryBuffer::getOpenFile to not close the file descriptor.
llvm-svn: 125128
2011-02-08 22:40:47 +00:00
Rafael Espindola
54673ba6ca
Don't tell the linker about available_externally definitions. If we do, it will
...
complain about duplicated definitions.
llvm-svn: 124634
2011-02-01 00:41:51 +00:00
Devang Patel
1c9a5199b5
Do not include DataTypes.h in llvm-c/lto.h.
...
This means avoid using uint32_t. This patch reverts r112200 and fixes original problem by fixing argument type in lto.cpp.
llvm-svn: 123038
2011-01-07 22:26:25 +00:00
Michael J. Spencer
86f6a9ac6e
MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm.
...
llvm-svn: 121958
2010-12-16 03:29:14 +00:00
Rafael Espindola
0e665e502d
Fixed version of 121434 with no new memory leaks.
...
llvm-svn: 121471
2010-12-10 07:39:47 +00:00
Rafael Espindola
011e168728
Revert my previous patch to make the valgrind bots happy.
...
llvm-svn: 121461
2010-12-10 04:01:09 +00:00
Rafael Espindola
03ad1e8f1f
Initial support for the cfi directives. This is just enough to get
...
f:
.cfi_startproc
nop
.cfi_endproc
assembled (on ELF).
llvm-svn: 121434
2010-12-09 23:48:29 +00:00
Michael J. Spencer
1b2e087ff3
More code not compiled by CMake. :(.
...
llvm-svn: 121387
2010-12-09 18:06:07 +00:00
Devang Patel
a4d6774cf8
Do not try luck by using given name to create temporary file. In parallel builds it may not work.
...
This time for .s file.
llvm-svn: 121016
2010-12-06 18:04:39 +00:00
Devang Patel
686e9faa6d
Do not try luck by using given name to create temporary file. In parallel builds it may not work.
...
llvm-svn: 120860
2010-12-03 23:58:31 +00:00
Michael J. Spencer
4a63404543
I swear I did a make clean and make before committing all this...
...
llvm-svn: 120304
2010-11-29 18:47:54 +00:00
Rafael Espindola
749c19f614
Record sysbols created by aliases. Fixes PR8414.
...
llvm-svn: 116910
2010-10-20 04:57:22 +00:00
Daniel Dunbar
1f543c9364
lto: Respect LLVM_VERSION_INFO make variable, since setting CC arguments with
...
spaces gives tests fits and shell escaping is an art best left to jabberwockies.
llvm-svn: 116632
2010-10-15 22:46:15 +00:00
Dan Gohman
b41a554403
This file needs ToolOutputFile.h too.
...
llvm-svn: 115976
2010-10-07 20:48:46 +00:00
Bill Wendling
ef718b99d4
Provide a fast "get me the target triple from the module" API. This can
...
drastically reduce the linking time during LTO.
Patch by Shantonu Sen!
llvm-svn: 115728
2010-10-06 01:22:42 +00:00
Bill Wendling
3e1b942231
Add a new scope type "LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN" for the
...
"linker_private_weak_auto_def" linkage type for LTO.
llvm-svn: 114868
2010-09-27 20:17:45 +00:00
Bill Wendling
3dde665cb8
The "linker_private_weak*" linkages should set the LTO_SYMBOL_DEFINITION_WEAK
...
during LTO.
llvm-svn: 114850
2010-09-27 18:05:19 +00:00
Dan Gohman
f9e09104f1
Make tool_output_file's raw_ostream instance a member variable instead
...
of a base class.
This makes it possible to unregister the file from FilesToRemove when
the file is done. Also, this eliminates the need for
formatted_tool_output_file.
llvm-svn: 112706
2010-09-01 14:20:41 +00:00
Devang Patel
83384fcb5c
Fix prototypes.
...
llvm-svn: 112200
2010-08-26 17:47:45 +00:00
Dan Gohman
6300d80566
lto_codegen_set_gcc_path was removed.
...
llvm-svn: 112069
2010-08-25 18:37:04 +00:00