- Sep 11, 2015
-
-
Frederic Riss authored
When cloning the debug info for a function that hasn't been linked, strip the DIEs from all location attributes that wouldn't contain any meaningful information anyway. This kind of situation can happen when a function got discarded by the linker, but its debug information is still wanted in the final link because it was marked as required as some other DIE dependency. The easiest way to get into that situation is to have using directives. They get linked unconditionally, but their targets might not always be present. llvm-svn: 247386
-
Frederic Riss authored
lldb doesn't like having variables named as an existing type. In order to ease debugging, rename those variables to avoid that conflict. llvm-svn: 247385
-
Richard Smith authored
disabled. (We still allow this via -cc1 / -Xclang, primarily for testing.) llvm-svn: 247384
-
Bruce Mitchener authored
Summary: Problems reported on NetBSD: ``` llvm[4]: Linking Debug+Asserts executable lldb /tmp/build-llvm/Debug+Asserts/lib/liblldb.so: undefined reference to `llvm::createObjCARCExpandPass()' /tmp/build-llvm/Debug+Asserts/lib/liblldb.so: undefined reference to `llvm::createObjCARCOptPass()' /tmp/build-llvm/Debug+Asserts/lib/liblldb.so: undefined reference to `llvm::createObjCARCAPElimPass()' /tmp/build-llvm/Debug+Asserts/lib/liblldb.so: undefined reference to `llvm::createObjCARCContractPass()' clang: error: linker command failed with exit code 1 (use -v to see invocation) /tmp/llvm/Makefile.rules:1434: recipe for target '/tmp/build-llvm/Debug+Asserts/bin/lldb' failed ``` Reviewers: joerg, sas Subscribers: brucem, sas, lldb-commits Change by Kamil Rytarowski <n54@gmx.com> Differential Revision: http://reviews.llvm.org/D12749 llvm-svn: 247383
-
David Blaikie authored
llvm-svn: 247382
-
David Blaikie authored
llvm-svn: 247381
-
David Blaikie authored
llvm-svn: 247380
-
David Blaikie authored
llvm-svn: 247379
-
David Blaikie authored
update.py: import fileinput import sys import re alias_match_prefix = r"(.*(?:=|:|^)\s*(?:external |)(?:(?:private|internal|linkonce|linkonce_odr|weak|weak_odr|common|appending|extern_weak|available_externally) )?(?:default |hidden |protected )?(?:dllimport |dllexport )?(?:unnamed_addr |)(?:thread_local(?:\([a-z]*\))? )?alias" plain = re.compile(alias_match_prefix + r" (.*?))(| addrspace\(\d+\) *)\*($| *(?:%|@|null|undef|blockaddress|addrspacecast|\[\[[a-zA-Z]|\{\{).*$)") cast = re.compile(alias_match_prefix + r") ((?:bitcast|inttoptr|addrspacecast)\s*\(.* to (.*?)(| addrspace\(\d+\) *)\*\)\s*(?:;.*)?$)") gep = re.compile(alias_match_prefix + r") ((?:getelementptr)\s*(?:inbounds)?\s*\((?P<type>.*), (?P=type)(?:\s*addrspace\(\d+\)\s*)?\* .*\)\s*(?:;.*)?$)") def conv(line): m = re.match(cast, line) if m: return m.group(1) + " " + m.group(3) + ", " + m.group(2) m = re.match(gep, line) if m: return m.group(1) + " " + m.group(3) + ", " + m.group(2) m = re.match(plain, line) if m: return m.group(1) + ", " + m.group(2) + m.group(3) + "*" + m.group(4) + "\n" return line for line in sys.stdin: sys.stdout.write(conv(line)) apply.sh: for name in "$@" do python3 `dirname "$0"`/update.py < "$name" > "$name.tmp" && mv "$name.tmp" "$name" rm -f "$name.tmp" done The actual commands: From llvm/src: find test/ -name *.ll | xargs ./apply.sh From llvm/src/tools/clang: find test/ -name *.mm -o -name *.m -o -name *.cpp -o -name *.c | xargs -I '{}' ../../apply.sh "{}" From llvm/src/tools/polly: find test/ -name *.ll | xargs ./apply.sh llvm-svn: 247378
-
Richard Smith authored
The former setup once resulted in us ignoring the module for C compilations, but Clang now errors on this if the header is included from C code (which it is). llvm-svn: 247377
-
Cong Hou authored
llvm-svn: 247376
-
Richard Smith authored
llvm-svn: 247375
-
Michael Zolotukhin authored
Summary: In r247104 I added the builtins for generating non-temporal memory operations, but now I realized that they lack documentation. This patch adds some. Differential Revision: http://reviews.llvm.org/D12785 llvm-svn: 247374
-
Argyrios Kyrtzidis authored
Assertion hit was in ClassTemplateSpecializationDecl::getSourceRange(). llvm-svn: 247373
-
Duncan P. N. Exon Smith authored
Fix embarrassing bugs I introduced to the `SlotTracker` in or around r235785. I had us iterating through every instruction in a function (and hitting a map in the LLVMContext) for every basic block in the function. While there, completely avoid the call to `SlotTracker::processFunctionMetadata()` from `SlotTracker::processFunction()` if we've speculatively done this already in `SlotTracker::processModule()` by checking `ShouldInitializeAllMetadata` (this wasn't an algorithmic problem, but it's touching the same line of code). Fixes PR24699. llvm-svn: 247372
-
Mehdi Amini authored
Revert "[InstCombineCalls] Use isKnownNonNullAt() to check nullness of passing arguments at callsite" This reverts commit r247356. Breaks test/Transforms/InstCombine/pr8547.ll with: Wrong types for attribute: byval inalloca nest noalias nocapture nonnull readnone readonly sret dereferenceable(1) dereferenceable_or_null(1) %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), i32 nonnull %conv2) #0 LLVM ERROR: Broken function found, compilation aborted! From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 247371
-
Rafael Espindola authored
With this a trivial shared binary runs with the glibc dynamic linker: LD_LIBRARY_PATH=. /lib64/ld-2.20.so ./t llvm-svn: 247370
-
Adrian Prantl authored
clang modules, if -dwarf-ext-refs (DebugTypesExtRefs) is specified. llvm-svn: 247369
-
Adrian Prantl authored
llvm-svn: 247368
-
David Majnemer authored
I cannot come up with a testcase which would rely on this call to RequireCompleteType, I believe that it is superfluous given the current state of clang. llvm-svn: 247367
-
Bruce Mitchener authored
Summary: * cmake/LLDBDependencies.cmake: elf-core is already included globally in LLDB_USED_LIBS, so it doesn't need to be re-added on individual platforms. * lib/Makefile: elf-core is linked on each platform, so move it to the global list of used libraries. * source/Plugins/Makefile: elf-core is built on each platform, so move it to the global list of things to build. Reviewers: clayborg, labath Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12762 llvm-svn: 247366
-
Rafael Espindola authored
For now it includes every symbol in the regular table. Since we don't create dynamic relocations yet, we don't have a good way of knowing which symbols are actually needed. llvm-svn: 247365
-
Kostya Serebryany authored
llvm-svn: 247364
-
Rafael Espindola authored
There is soon going to be two symbol tables, but there will still be only one output bss. llvm-svn: 247363
-
Reid Kleckner authored
Summary: With Visual Studio 2015 release, a part of runtime library was extracted and now comes with Windows Kits. This patch enables clang to use Universal CRT library if %INCLUDE or %LIB environment varaibles are not specified. See also https://llvm.org/bugs/show_bug.cgi?id=24741 Patch by Igor Kudrin Reviewers: zturner, hans, rnk Subscribers: ruiu, cfe-commits Differential Revision: http://reviews.llvm.org/D12695 llvm-svn: 247362
-
Reid Kleckner authored
llvm-svn: 247361
-
Michael Zolotukhin authored
llvm-svn: 247360
-
Richard Smith authored
llvm-svn: 247359
-
Reid Kleckner authored
When the driver tries to locate a program by its name, e.g. a linker, it scans the paths provided by the toolchain using the ScanDirForExecutable function. If the lookup fails, the driver uses llvm::sys::findProgramByName. Unlike llvm::sys::findProgramByName, ScanDirForExecutable is not aware of file extensions. If the program has the "exe" extension in its name, which is very common on Windows, ScanDirForExecutable won't find it under the toolchain-provided paths. This patch changes the Windows version of the "`can_execute`" function called by ScanDirForExecutable to respect file extensions, similarly to llvm::sys::findProgramByName. Patch by Oleg Ranevskyy Reviewers: rnk Differential Revision: http://reviews.llvm.org/D12711 llvm-svn: 247358
-
Cong Hou authored
llvm-svn: 247357
-
Chen Li authored
Summary: This patch replaces isKnownNonNull() with isKnownNonNullAt() when checking nullness of passing arguments at callsite. In this way it can handle cases where the argument does not have nonnull attribute but has a dominating null check from the CFG. Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12779 llvm-svn: 247356
-
Rafael Espindola authored
This is in preparation to adding a dynamic string table. llvm-svn: 247355
-
Rafael Espindola authored
llvm-svn: 247354
-
Chen Li authored
Summary: This patch replaces isKnownNonNull() with isKnownNonNullAt() when checking nullness of gc.relocate return value. In this way it can handle cases where the relocated value does not have nonnull attribute but has a dominating null check from the CFG. Reviewers: reames Subscribers: llvm-commits, sanjoy Differential Revision: http://reviews.llvm.org/D12772 llvm-svn: 247353
-
Filipe Cabecinhas authored
llvm-svn: 247352
-
Reid Kleckner authored
Summary: This fixs the bug https://llvm.org/bugs/show_bug.cgi?id=12587 Patch by Yunlian Jiang Reviewers: Bigcheese, rnk Differential Revision: http://reviews.llvm.org/D10279 llvm-svn: 247351
-
John McCall authored
rdar://6198039 llvm-svn: 247350
-
Reid Kleckner authored
Cleanupendpad is a lot like catchendpad, so we can reuse the same EHScopeStack type. llvm-svn: 247349
-
Reid Kleckner authored
The Win32 EH runtime caller does not preserve EBP, even though it does preserve the CSRs (EBX, ESI, EDI) for us. The result was that each finally funclet call would leave the frame pointer off by 12 bytes. llvm-svn: 247348
-
- Sep 10, 2015
-
-
Roman Divacky authored
llvm-svn: 247347
-