summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Use common range handling for the CU's rangesDavid Blaikie2014-11-034-55/+38
| | | | | | | | This generalizes the range handling for ranges in both the skeleton and full unit, laying the foundation for the addition of more ranges (rather than just the CU's special case) in the skeleton CU with fission+gmlt. llvm-svn: 221202
* [AArch64] Make function processLogicalImmediate more efficient. NFC.Akira Hatanaka2014-11-031-47/+42
| | | | llvm-svn: 221199
* Handle ASAN_OPTIONS and UBSAN_OPTIONS in TestingConfig.pyRafael Espindola2014-11-032-6/+1
| | | | | | | | Currently they are passed to tests of llvm itself, but not, for example, lld. With this patch the options are visible in every test. llvm-svn: 221198
* refactor duplicated code. NFC.Rafael Espindola2014-11-031-5/+5
| | | | llvm-svn: 221191
* InstCombine: Remove infinite loop caused by FoldOpIntoPhiDavid Majnemer2014-11-033-18/+28
| | | | | | | | | | | | | | FoldOpIntoPhi could create an infinite loop if the PHI could potentially reach a BB it was considering inserting instructions into. The instructions it would insert would eventually lead to other combines firing which would, again, lead to FoldOpIntoPhi firing. The solution is to handicap FoldOpIntoPhi so that it doesn't attempt to insert instructions that the PHI might reach. This fixes PR21377. llvm-svn: 221187
* Push the CURangeList down into the skeleton CU (where available) rather than ↵David Blaikie2014-11-033-3/+3
| | | | | | | | | | | | | | | | | the full CU So that it may be shared between skeleton/full compile unit, for CU ranges and other ranges to be added for fission+gmlt. (at some point we might want some kind of object shared between the skeleton and full compile units for all those things we only want one of in that scope, rather than having the full unit always look through to the skeleton... - alternatively, we might be able to have the skeleton pointer (or another, separate pointer) point to the skeleton or to the unit itself in non-fission, so we don't have to special case its absence) llvm-svn: 221186
* [X86] Add debug print name for X86ISD::[US]MUL8. NFC-ish.Ahmed Bougacha2014-11-031-0/+2
| | | | | | The opcodes were added in r220516, but I forgot to add the print names. llvm-svn: 221185
* [lit] Forward LD_PRELOAD to tests.Rafael Espindola2014-11-031-0/+1
| | | | | | | With this patch I can use asan to test the gold plugin without having to build gold itself with asan. llvm-svn: 221183
* Add DwarfCompileUnit::BaseAddress to track the base address used by relative ↵David Blaikie2014-11-033-7/+11
| | | | | | | | | | | | | | addressing in debug_ranges and debug_loc This is one of a few steps to generalize range handling to include the CU range (thus the CU's range list will be moved into the range list list, losing track of the base address in the process), which means generalizing ranges from both the skeleton and full unit under fission. And... then I can used that generalized support for ranges in fission+gmlt where there'll be a bunch more ranges in the skeleton. llvm-svn: 221182
* [ARM, inline-asm] Fix ARMTargetLowering::getRegForInlineAsmConstraint to returnAkira Hatanaka2014-11-032-1/+14
| | | | | | | | | | | | register class tGPRRegClass if the target is thumb1. This commit fixes a crash that occurs during register allocation which was triggered when a virtual register defined by an inline-asm instruction had to be spilled. rdar://problem/18740489 llvm-svn: 221178
* MSVC requires redeclarations to repeat noexceptReid Kleckner2014-11-031-1/+1
| | | | llvm-svn: 221177
* [X86] 8bit divrem: Improve codegen for AH register extraction.Ahmed Bougacha2014-11-035-28/+187
| | | | | | | | | | | | | | | | | | | | | | | | For 8-bit divrems where the remainder is used, we used to generate: divb %sil shrw $8, %ax movzbl %al, %eax That was to avoid an H-reg access, which is problematic mainly because it isn't possible in REX-prefixed instructions. This patch optimizes that to: divb %sil movzbl %ah, %eax To do that, we explicitly extend AH, and extract the L-subreg in the resulting register. The extension is done using the NOREX variants of MOVZX. To support signed operations, MOVSX_NOREX is also added. Further, this introduces a new SDNode type, [us]divrem_ext_hreg, which is then lowered to a sequence containing a single zext (rather than 2). Differential Revision: http://reviews.llvm.org/D6064 llvm-svn: 221176
* EarlyCSE should ignore calls to @llvm.assumeHal Finkel2014-11-032-0/+48
| | | | | | | | | | | | EarlyCSE uses a simple generation scheme for handling memory-based dependencies, and calls to @llvm.assume (which are marked as writing to memory to ensure the preservation of control dependencies) disturb that scheme unnecessarily. Skipping calls to @llvm.assume is legal, and the alternative (adding AA calls in EarlyCSE) is likely undesirable (we have GVN for that). Fixes PR21448. llvm-svn: 221175
* Reapply: R600: Make sure to inline all internal functionsTom Stellard2014-11-036-1/+107
| | | | | | | | Function calls aren't supported yet. This was reverted due to build breakages, which should be fixed now. llvm-svn: 221173
* [Reassociate] Canonicalize negative constants out of expressions.Chad Rosier2014-11-034-112/+337
| | | | | | | | | This gives CSE/GVN more options to eliminate duplicate expressions. This is a follow up patch to http://reviews.llvm.org/D4904. http://reviews.llvm.org/D5363 llvm-svn: 221171
* Relax the LLVM_NOEXCEPT _MSC_VER version check back to 1900Reid Kleckner2014-11-031-1/+1
| | | | | | | | | | Unconditional noexcept support was added in the VS 2013 Nov CTP. Given that there have been three CTPs since then, I don't think we need careful macro magic to target that specific tech preview. Instead, target the major release version number of 1900, which corresponds to the as-yet unreleased VS "14". llvm-svn: 221169
* Normally an 'optnone' function goes through fast-isel, which does notPaul Robinson2014-11-033-0/+177
| | | | | | | | | | | | call DAGCombiner. But we ran into a case (on Windows) where the calling convention causes argument lowering to bail out of fast-isel, and we end up in CodeGenAndEmitDAG() which does run DAGCombiner. So, we need to make DAGCombiner check for 'optnone' after all. Commit includes the test that found this, plus another one that got missed in the original optnone work. llvm-svn: 221168
* IR: MDNode => Value: Instruction::getAllMetadataOtherThanDebugLoc()Duncan P. N. Exon Smith2014-11-0311-24/+23
| | | | | | | Change `Instruction::getAllMetadataOtherThanDebugLoc()` from a vector of `MDNode` to one of `Value`. Part of PR21433. llvm-svn: 221167
* Remove the cortex-a9-mp CPU.Charlie Turner2014-11-036-29/+7
| | | | | | | | | | | | | | | | | | This CPU definition is redundant. The Cortex-A9 is defined as supporting multiprocessing extensions. Remove its definition and update appropriate tests. LLVM defines both a cortex-a9 CPU and a cortex-a9-mp CPU. The only difference between the two CPU definitions in ARM.td is that cortex-a9-mp contains the feature FeatureMP for multiprocessing extensions. This is redundant since the Cortex-A9 is defined as having multiprocessing extensions in the TRMs. armcc also defines the Cortex-A9 as having multiprocessing extensions by default. Change-Id: Ifcadaa6c322be0a33d9d2a39cfdd7da1d75981a7 llvm-svn: 221166
* Cleanup some unused or trivial functions in DwarfCompileUnitDavid Blaikie2014-11-032-7/+1
| | | | llvm-svn: 221164
* Sink DwarfUnit::CURanges into DwarfCompileUnitDavid Blaikie2014-11-033-8/+7
| | | | llvm-svn: 221161
* [AArch64] Fix miscompile of comparison with 0xffffffffffffffffOliver Stannard2014-11-032-4/+40
| | | | | | | Some literals in the AArch64 backend had 15 'f's rather than 16, causing comparisons with a constant 0xffffffffffffffff to be miscompiled. llvm-svn: 221157
* Handle ctor/init_array initialization.Sid Manning2014-11-032-1/+15
| | | | | | | | | Hexagon was not calling InitializeELF and could not select between ctors and init_array. Phabricator revision: http://reviews.llvm.org/D6061 llvm-svn: 221156
* Merge the directive-eabi_attribute.s and directive-eabi_attribute-2.s tests.Charlie Turner2014-11-032-142/+146
| | | | | | | | | | | | | test/MC/ARM/directive-eabi_attribute.s had gotten out-of-sync with test/MC/ARM/directive-eabi_attribute-2.s. The former tests the encoding of build attributes in object files, and the latter the encoding in assembly files. Since both these tests need to be updated at the same time, it makes sense to combine them into a single test. The object file encodings are being checked against the ouput of -arm-attributes rather than by direct byte comparisons which makes for easier reading. Change-Id: I0075de506ae5626fb2fa235383fe5ce6a65a15a9 llvm-svn: 221155
* Add CRLF support to LineIterator.Rafael Espindola2014-11-033-16/+33
| | | | | | | The MRI scripts have to work with CRLF, and in general it is probably a good idea to support this in a core utility like LineIterator. llvm-svn: 221153
* Revert r221150, as it broke sanitizer testsOliver Stannard2014-11-0310-51/+19
| | | | llvm-svn: 221151
* Emit .eh_frame with relocations to functions, rather than sectionsOliver Stannard2014-11-0310-19/+51
| | | | | | | | | | | | | | | | | | | | | | | When LLVM emits DWARF call frame information, it currently creates a local, section-relative symbol in the code section, which is pointed to by a relocation on the .eh_frame section. However, for C++ we emit some functions in section groups, and the SysV ABI has some rules to make it easier to remove these sections (http://www.sco.com/developers/gabi/latest/ch4.sheader.html#section_group_rules): A symbol table entry with STB_LOCAL binding that is defined relative to one of a group's sections, and that is contained in a symbol table section that is not part of the group, must be discarded if the group members are discarded. References to this symbol table entry from outside the group are not allowed. This means that we need to use the function symbol for the relocation, not a temporary symbol. There was a comment in the code claiming that the local symbol was used to avoid creating a relocation, but a relocation must be created anyway as the code and CFI are in different sections. llvm-svn: 221150
* [OCaml] Fix mismatched CAMLparam/CAMLreturn.Peter Zotov2014-11-031-4/+3
| | | | | | | Also, revert r221142--it was an incorrect fix to this bug which fixed tests by accident. llvm-svn: 221149
* Test commit.Charlie Turner2014-11-031-2/+2
| | | | | | | Fixes two typos. Change-Id: I129f647de8933e1d8f0dc9941bcb91602edce7e2 llvm-svn: 221148
* CMake: Add libm to list of system libs printed by llvm-config.Peter Collingbourne2014-11-031-0/+1
| | | | | | | This is required by the interpreter library, and also matches the autoconf behavior. llvm-svn: 221147
* [mips] Remove unused prototype and variable. NFC.Daniel Sanders2014-11-032-5/+0
| | | | llvm-svn: 221146
* [OCaml] Add -g on DEBUG_SYMBOLS=1, not ENABLE_OPTIMIZED.Peter Zotov2014-11-031-1/+1
| | | | | | Thanks echristo for pointing this out. llvm-svn: 221145
* Unbreak build.Peter Zotov2014-11-031-1/+1
| | | | | | A bug in lit.cfg was introduced in r221137. llvm-svn: 221144
* [OCaml] Don't use deprecated non-caml_namespaced functions.Peter Zotov2014-11-031-7/+7
| | | | llvm-svn: 221143
* [OCaml] Initialize local roots prior to raising.Peter Zotov2014-11-031-3/+4
| | | | | | On 4.02, the OCaml unwinder otherwise gets confused and segfaults. llvm-svn: 221142
* [OCaml] Core package should depend on LLVMTransformUtils for LLVMCloneModule.Peter Zotov2014-11-031-1/+1
| | | | llvm-svn: 221141
* [OCaml] Fix ocamlc -custom builds when configured as --enable-shared.Peter Zotov2014-11-031-2/+3
| | | | llvm-svn: 221140
* [OCaml] Avoid embedding absolute paths into executables.Peter Zotov2014-11-032-15/+16
| | | | | | | | | | | | Bindings built out-of-tree, e.g. via OPAM, should append a line to META.llvm like the following: linkopts = "-cclib -L$libdir -cclib -Wl,-rpath,$libdir" where $libdir is the lib/ directory where LLVM libraries are installed. llvm-svn: 221139
* [OCaml] Don't build stub libraries twice.Peter Zotov2014-11-031-0/+3
| | | | | | | The default Makefile.rules BUILD_ARCHIVE machinery was unintentionally enabled. llvm-svn: 221138
* [OCaml] Run tests twice, with ocamlc and ocamlopt (if available)Peter Zotov2014-11-0314-25/+60
| | | | | | | | | | ocamlc and ocamlopt expose a distinct set of buildsystem bugs, e.g. only ocamlc would detect -custom or -dllib-related bugs, and as all buildbots will have ocamlopt, these bugs will stay hidden. This change should add no more than 30 seconds of testing time. llvm-svn: 221137
* [OCaml] META: remove exists_if(toplevel).Peter Zotov2014-11-032-2/+0
| | | | | | | ocamlfind ignores the predicates in this case, making the package unavailable for batch compilation as well. llvm-svn: 221136
* [OCaml] ExecutionEngine package should not depend on interpreter.Peter Zotov2014-11-031-1/+1
| | | | | | Interpreter support was removed in r220957. llvm-svn: 221135
* Forgot to add input file for test added in r221133David Majnemer2014-11-031-0/+0
| | | | llvm-svn: 221134
* llvm-vtabledump: Handle Itanium VTablesDavid Majnemer2014-11-032-95/+222
| | | | | | Add support in the vtable dumper for the Itanium ABI. llvm-svn: 221133
* InstCombine: Combine (X | Y) - X to (~X & Y)David Majnemer2014-11-032-6/+25
| | | | | | | | This implements the transformation from (X | Y) - X to (~X & Y). Differential Revision: http://reviews.llvm.org/D5791 llvm-svn: 221129
* Sink range list handling down from DwarfUnit into its only use, in ↵David Blaikie2014-11-032-15/+15
| | | | | | DwarfCompileUnit. llvm-svn: 221123
* Use ErrorOr for the ::create factory on instrumented and sample profilers.Diego Novillo2014-11-038-51/+65
| | | | | | | | | | | | | | | | | Summary: As discussed in http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141027/242445.html, the creation of reader and writer instances is better done using ErrorOr. There are no functional changes, but several callers needed to be adjusted. Reviewers: bogner Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6076 llvm-svn: 221120
* R600: Don't unnecessarily repeat the register classMatt Arsenault2014-11-021-5/+5
| | | | llvm-svn: 221119
* R600/SI: Use REG_SEQUENCE instead of INSERT_SUBREGsMatt Arsenault2014-11-024-47/+43
| | | | llvm-svn: 221118
* Support REG_SEQUENCE in tablegen.Matt Arsenault2014-11-024-15/+67
| | | | | | | | | The problem is mostly that variadic output instruction aren't handled, so it is rejected for having an inconsistent number of operands, and then the right number of operands isn't emitted. llvm-svn: 221117
OpenPOWER on IntegriCloud