- Apr 05, 2012
-
-
Bill Wendling authored
Consider the following program: $ cat main.c void foo(void) { } int main(int argc, char *argv[]) { foo(); return 0; } $ cat bundle.c extern void foo(void); void bar(void) { foo(); } $ clang -o main main.c $ clang -o bundle.so bundle.c -bundle -bundle_loader ./main $ nm -m bundle.so 0000000000000f40 (__TEXT,__text) external _bar (undefined) external _foo (from executable) (undefined) external dyld_stub_binder (from libSystem) $ clang -o main main.c -O4 $ clang -o bundle.so bundle.c -bundle -bundle_loader ./main Undefined symbols for architecture x86_64: "_foo", referenced from: _bar in bundle-elQN6d.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) The linker was told that the 'foo' in 'main' was 'internal' and had no uses, so it was dead stripped. Another situation is something like: define void @foo() { ret void } define void @bar() { call asm volatile "call _foo" ... ret void } The only use of 'foo' is inside of an inline ASM call. Since we don't look inside those for uses of functions, we don't specify this as a "use." Get around this by not invoking the 'internalize' pass by default. This is an admitted hack for LTO correctness. <rdar://problem/11185386> llvm-svn: 154124
-
- Apr 03, 2012
-
-
Anton Korobeynikov authored
Patch by Bernard Cafarelli! llvm-svn: 153965
-
Bill Wendling authored
llvm-svn: 153928
-
Bill Wendling authored
llvm-svn: 153902
-
- Apr 02, 2012
-
-
Bill Wendling authored
reflected in the LLVM IR (as a declare or something), then treat it like a data object. N.B. This isn't 100% correct. The ASM parser should supply more information so that we know what type of object it is, and what attributes it should have. llvm-svn: 153870
-
Craig Topper authored
Make MCInstrInfo available to the MCInstPrinter. This will be used to remove getInstructionName and the static data it contains since the same tables are already in MCInstrInfo. llvm-svn: 153860
-
Bill Wendling authored
definition for it. In that case, we want to wait for the potential definition before we create a symbol for it. llvm-svn: 153859
-
- Mar 31, 2012
-
-
Bill Wendling authored
llvm-svn: 153810
-
Bill Wendling authored
llvm-svn: 153809
-
Bill Wendling authored
llvm-svn: 153808
-
Bill Wendling authored
llvm-svn: 153807
-
Bill Wendling authored
llvm-svn: 153805
-
Bill Wendling authored
llvm-svn: 153804
-
Bill Wendling authored
llvm-svn: 153803
-
Bill Wendling authored
llvm-svn: 153802
-
Bill Wendling authored
into the function. * Reorder some header files. llvm-svn: 153783
-
- Mar 30, 2012
-
-
Danil Malyshev authored
1. The main works will made in the RuntimeDyLdImpl with uses the ObjectFile class. RuntimeDyLdMachO and RuntimeDyLdELF now only parses relocations and resolve it. This is allows to make improvements of the RuntimeDyLd more easily. In addition the support for COFF can be easily added. 2. Added ARM relocations to RuntimeDyLdELF. 3. Added support for stub functions for the ARM, allowing to do a long branch. 4. Added support for external functions that are not loaded from the object files, but can be loaded from external libraries. Now MCJIT can correctly execute the code containing the printf, putc, and etc. 5. The sections emitted instead functions, thanks Jim Grosbach. MemoryManager.startFunctionBody() and MemoryManager.endFunctionBody() have been removed. 6. MCJITMemoryManager.allocateDataSection() and MCJITMemoryManager. allocateCodeSection() used JMM->allocateSpace() instead of JMM->allocateCodeSection() and JMM->allocateDataSection(), because I got an error: "Cannot allocate an allocated block!" with object file contains more than one code or data sections. llvm-svn: 153754
-
Bill Wendling authored
llvm-svn: 153740
-
Bill Wendling authored
llvm-svn: 153701
-
- Mar 29, 2012
-
-
Danil Malyshev authored
Added ExecutionEngine/MCJIT tests. llvm-svn: 153694
-
Bill Wendling authored
Module-level ASM may contain definitions of functions and globals. However, we were not telling the linker that these globals had definitions. As far as it was concerned, they were just declarations. Attempt to resolve this by inserting module-level ASM functions and globals into the '_symbol' set so that the linker will know that they have values. This gets us further towards our goal of compiling LLVM, but it still has problems when linking libLTO.dylib because of the `-dead_strip' flag that's passed to the linker. <rdar://problem/11124216> llvm-svn: 153638
-
Bill Wendling authored
llvm-svn: 153634
-
Bill Wendling authored
llvm-svn: 153632
-
Bill Wendling authored
llvm-svn: 153612
-
- Mar 28, 2012
-
-
Danil Malyshev authored
llvm-svn: 153607
-
Bill Wendling authored
llvm-svn: 153598
-
Bill Wendling authored
a bunch of comments for the various functions. No intended functionality change. llvm-svn: 153595
-
Bill Wendling authored
llvm-svn: 153567
-
- Mar 23, 2012
-
-
Benjamin Kramer authored
This should unbreak the msvc build. llvm-svn: 153329
-
Anton Korobeynikov authored
Patch from Mageia! llvm-svn: 153324
-
Eric Christopher authored
llvm-svn: 153307
-
- Mar 22, 2012
-
-
Chandler Carruth authored
(and hopefully on Windows). The bots have been down most of the day because of this, and it's not clear to me what all will be required to fix it. The commits started with r153205, then r153207, r153208, and r153221. The first commit seems to be the real culprit, but I couldn't revert a smaller number of patches. When resubmitting, r153207 and r153208 should be folded into r153205, they were simple build fixes. llvm-svn: 153241
-
- Mar 21, 2012
-
-
Danil Malyshev authored
Added ExecutionEngine/MCJIT tests. llvm-svn: 153221
-
Danil Malyshev authored
llvm-svn: 153208
-
- Mar 20, 2012
-
-
Chris Lattner authored
1) opt is not usually in the same path as the target program. Even for the bugpoint as a standalone app, it should be more portable to search in PATH, isn't it? 2) bugpoint driver accounts opt plugins, but does not list them in the final output command. Patch by Dmitry Mikushin! llvm-svn: 153066
-
Chris Lattner authored
llvm-svn: 153065
-
- Mar 13, 2012
-
-
Eli Bendersky authored
Also refactor the existing OProfile profiling code to reuse the same interfaces with the VTune profiling code. In addition, unit tests for the profiling interfaces were added. This patch was prepared by Andrew Kaylor and Daniel Malea, and reviewed in the llvm-commits list by Jim Grosbach llvm-svn: 152620
-
- Mar 11, 2012
-
-
Stepan Dyatkovskiy authored
Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default. Added some notes relative to case iterators. llvm-svn: 152532
-
- Mar 10, 2012
-
-
Benjamin Kramer authored
llvm-svn: 152474
-
- Mar 09, 2012
-
-
David Meyer authored
* Add enums and structures for GNU version information. * Implement extraction of that information on a per-symbol basis (ELFObjectFile::getSymbolVersion). * Implement a generic interface, GetELFSymbolVersion(), for getting the symbol version from the ObjectFile (hides the templating). * Have llvm-readobj print out the version, when available. * Add a test for the new feature: readobj-elf-versioning.test llvm-svn: 152436
-