- Jan 15, 2015
-
-
Chandler Carruth authored
While the term "Target" is in the name, it doesn't really have to do with the LLVM Target library -- this isn't an abstraction which LLVM targets generally need to implement or extend. It has much more to do with modeling the various runtime libraries on different OSes and with different runtime environments. The "target" in this sense is the more general sense of a target of cross compilation. This is in preparation for porting this analysis to the new pass manager. No functionality changed, and updates inbound for Clang and Polly. llvm-svn: 226078
-
NAKAMURA Takumi authored
llvm-svn: 226077
-
Ed Maste authored
llvm-svn: 226076
-
Sanjoy Das authored
The bug was introduced in r225282. r225282 assumed that sub X, Y is the same as add X, -Y. This is not correct if we are going to upgrade the sub to sub nuw. This change fixes the issue by making the optimization ignore sub instructions. Differential Revision: http://reviews.llvm.org/D6979 llvm-svn: 226075
-
Jim Ingham authored
the hit count is not updated. Also, keep the hit count for the breakpoint in the breakpoint. We were using just the sum of the location's hit counts, but that was wrong since if a shared library is unloaded, and the location goes away, the breakpoint hit count should not suddenly drop by the number of hits there were on that location. llvm-svn: 226074
-
Hal Finkel authored
This adds support for creating an InstAlias with a negative immediate, i.e.: def NOT : InstAlias<"not $dst, $src", (XORI GR32:$dst, GR32:$src, -1)>; by resolving this problem: RISCVGenAsmMatcher.inc:95:11: error: expected '= constant-expression' or end of enumerator definition CVT_imm_-1, ^^^^^^^^^^ Patch by Jordy Potman, thanks! llvm-svn: 226073
-
Rui Ueyama authored
This would have caught the issue that I made in r225764. llvm-svn: 226072
-
Hal Finkel authored
This allows the RegisterCoalescer to join "non-flipped" range pairs with a physical destination register -- which allows the RegisterCoalescer to remove copies like this: <vreg> = something (maybe a load, for example) ... (things that don't use PHYSREG) PHYSREG = COPY <vreg> (with all of the restrictions normally applied by the RegisterCoalescer: having compatible register classes, etc. ) Previously, the RegisterCoalescer handled only the opposite case (copying *from* a physical register). I don't handle the problem fully here, but try to get the common case where there is only one use of <vreg> (the COPY). An upcoming commit to the PowerPC backend will make this pattern much more common on PPC64/ELF systems. llvm-svn: 226071
-
Hal Finkel authored
Fill out our support for the floating-point status and control register instructions (mcrfs and friends). As it turns out, these are necessary for compiling src/test/harness_fp.h in TBB for PowerPC. Thanks to Raf Schietekat for reporting the issue! llvm-svn: 226070
-
Richard Smith authored
it's defined in the current module. Clang generates this situation for the C++14 sized deallocation functions, because it generates a weak definition in case one isn't provided by the C++ runtime library. llvm-svn: 226069
-
Kate Stone authored
The default help display now shows the alias collection by default, and hides commands whose named begin with an underscore. Help is primarily useful to those unfamiliar with LLDB and should aim to answer typical questions while still being able to provide more esoteric answers when required. To that latter end an argument to include the hidden commands in help has been added, and instead of having a help flag to show aliases there is now one to hide them. This final change might be controversial as it repurposes the -a shorthand as the opposite of its original meaning. The previous implementation of OutputFormattedHelpText was easily confused by embedded newlines. The new algorithm correctly breaks on the FIRST newline or LAST space/tab before the target column count rather than treating all whitespace interchangeably. Command interpreters now have the ability to specify help prologue text and a command prefix string. Neither are used in the current LLDB sources but are required to support REPL-like extensions where LLDB commands must be prefixed and additional help text is required to explain how to access traditional debugging commands. <rdar://problem/17751929> <rdar://problem/16953815> <rdar://problem/16953841> <rdar://problem/16930173> <rdar://problem/16879028> llvm-svn: 226068
-
Richard Smith authored
llvm-svn: 226067
-
Colin LeMahieu authored
llvm-svn: 226065
-
Adrian Prantl authored
llvm-svn: 226064
-
Jon Roelofs authored
llvm-svn: 226063
-
Enrico Granata authored
While there is quite a bit of potential for mishaps due to tagged pointers, and after quite some internal discussion, this seems a saner behavior given how "po" stands for "print OBJECT". The argument being that we should make at least some sensible attempt to print the thing the user passed as-if it was an object Fixes rdar://19423124 llvm-svn: 226062
-
Jon Roelofs authored
llvm-svn: 226061
-
Ramkumar Ramachandra authored
The transform is somewhat involved, but the basic idea is simple: find derived pointers that have been offset from the base pointer using gep and replace the relocate of the derived pointer with a gep to the relocated base pointer (with the same offset). llvm-svn: 226060
-
Duncan P. N. Exon Smith authored
llvm-svn: 226058
-
Colin LeMahieu authored
llvm-svn: 226057
-
Philip Reames authored
"Write a set of tests that show how name mangling is done for overloaded intrinsics." These happen to use gc.relocates to exercise the codepath in question, but is not a GC specific test. Patch by: artagnon@gmail.com Differential Revision: http://reviews.llvm.org/D6915 llvm-svn: 226056
-
NAKAMURA Takumi authored
llvm-svn: 226055
-
- Jan 14, 2015
-
-
Zachary Turner authored
llvm-svn: 226054
-
Zachary Turner authored
llvm-svn: 226053
-
Reid Kleckner authored
Also nuke the comment about supporting multiple personalities in a single function, aka PR1414. That's just crazy. llvm-svn: 226052
-
Duncan P. N. Exon Smith authored
Update testcases to match LLVM change in r226048. llvm-svn: 226049
-
Duncan P. N. Exon Smith authored
This commit moves `MDLocation`, finishing off PR21433. There's an accompanying clang commit for frontend testcases. I'll attach the testcase upgrade script I used to PR21433 to help out-of-tree frontends/backends. This changes the schema for `DebugLoc` and `DILocation` from: !{i32 3, i32 7, !7, !8} to: !MDLocation(line: 3, column: 7, scope: !7, inlinedAt: !8) Note that empty fields (line/column: 0 and inlinedAt: null) don't get printed by the assembly writer. llvm-svn: 226048
-
Matthias Braun authored
Summary: Some pseudo instruction expansions break down a wide register use into multiple uses of smaller sub registers. If the super register was partially undefined the broken down sub registers may be completely undefined now leading to MachineVerifier complaints. Unfortunately liveness information to add the required dead flags is not easily (cheaply) available when expanding pseudo instructions. This commit changes the verifier to be quiet if there is an additional implicit use of a super register. Pseudo instruction expanders can use this to mark cases where partially defined values get potentially broken into completely undefined ones. Differential Revision: http://reviews.llvm.org/D6973 llvm-svn: 226047
-
Duncan P. N. Exon Smith authored
Print `MDLocation`'s `line` field even when it's 0. llvm-svn: 226046
-
Duncan P. N. Exon Smith authored
Sometimes teardown happens before the debug info graph is complete (e.g., when clang throws an error). In that case, `MDNode`s will still have RAUW, so deleting constants that the `MDNode`s point at will be relatively expensive -- it'll cause re-uniquing all up the chain (what I've been referring to as "teardown madness"). So, drop references *before* deleting constants. We need to drop a few more references now: the metadata side of the metadata/value bridges needs to be dropped off the cliff along with the rest of it (previously, the bridges were cleaned before we did anything with the `MDNode`s). There's no real functionality change here -- state before and after `LLVMContextImpl::~LLVMContextImpl()` is unchanged -- so no testcase. llvm-svn: 226044
-
Jon Roelofs authored
llvm-svn: 226043
-
Zachary Turner authored
These fix various issues with path handling and disable a few tests which use features of LLVM which are not yet supported on Windows. llvm-svn: 226042
-
Greg Clayton authored
This ensures the expression gets runs with the correct language. <rdar://problem/18816647> llvm-svn: 226041
-
Jon Roelofs authored
llvm-svn: 226040
-
Vince Harron authored
BUILD_SHARED_LIBS=TRUE currently isn't working for Linux x86_64 This patch fixes the link errors and also some runtime errors Test Plan: CC=clang CXX=clang++ cmake -GNinja -DBUILD_SHARED_LIBS=TRUE -DCMAKE_LINKER=ld.gold -DCMAKE_BUILD_TYPE=Debug ../../llvm ninja ninja check-lldb llvm-svn: 226039
-
Rafael Espindola authored
This patch stops the implicit creation of comdats during codegen. Clang now sets the comdat explicitly when it is required. With this patch clang and gcc now produce the same result in pr19848. llvm-svn: 226038
-
Ed Maste authored
If stdout is not a terminal Python executes rl_variable_bind ("enable-meta-key", "off"); This produces a warning with FreeBSD's libedit because the enable-meta-key variable is unknown. Not an issue on Apple because cpython commit f0ab6f9f0603 added a #ifndef __APPLE__ around the call. See http://bugs.python.org/issue19884 for more information. For now we just discard the warning output to get the tests working again on FreeBSD. llvm-svn: 226037
-
Colin LeMahieu authored
llvm-svn: 226036
-
Rafael Espindola authored
llvm-svn: 226035
-
Chandler Carruth authored
Some benchmarks have shown that this could lead to a potential performance benefit, and so adding some flags to try to help measure the difference. A possible explanation. In diamond-shaped CFGs (A followed by either B or C both followed by D), putting B and C both in between A and D leads to the code being less dense than it could be. Always either B or C have to be skipped increasing the chance of cache misses etc. Moving either B or C to after D might be beneficial on average. In the long run, but we should probably do a better job of analyzing the basic block and branch probabilities to move the correct one of B or C to after D. But even if we don't use this in the long run, it is a good baseline for benchmarking. Original patch authored by Daniel Jasper with test tweaks and a second flag added by me. Differential Revision: http://reviews.llvm.org/D6969 llvm-svn: 226034
-