summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [Statepoint] Remove unnecessary argument from Statepoint::getRelocatesSanjoy Das2015-06-202-8/+5
| | | | | | NFC. llvm-svn: 240198
* [Statepoint][NFC] Fix include guard style.Sanjoy Das2015-06-201-2/+2
| | | | llvm-svn: 240197
* Revert 240130, it caused crashes (repro in PR23900).Nico Weber2015-06-1926-127/+134
| | | | llvm-svn: 240193
* name change: hasPattern() -> getMachineCombinerPatterns() ; NFCSanjay Patel2015-06-196-42/+40
| | | | | | | This was suggested as part of D10460, but it's independent of any functional change. llvm-svn: 240192
* [CallGraph] Given -print-callgraph a stable printing order.Sanjoy Das2015-06-192-5/+23
| | | | | | | | | | | | | | | | Summary: Since FunctionMap has llvm::Function pointers as keys, the order in which the traversal happens can differ from run to run, causing spurious FileCheck failures. Have CallGraph::print sort the CallGraphNodes by name before printing them. Reviewers: bogner, chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10575 llvm-svn: 240191
* Try to fix generation of LLVMExports.cmake under Visual Studio.Dan Liew2015-06-191-1/+1
| | | | | | | | | | If LLVMDebugInfoPDB links against the DIA SDK then the exports file would contain an INTERFACE_LINK_LIBRARIES property that contained an absolute path to ``diaguids.lib`` which used a native windows path (interpreted as escape sequences when LLVMExports.cmake is imported causing ``find_package(LLVM)`` to fail) rather than the correct CMake style path. llvm-svn: 240181
* Improve error handling of getRelocationAddend.Rafael Espindola2015-06-197-99/+61
| | | | | | | | | | | | | | | | | | This patch changes getRelocationAddend to use ErrorOr and considers it an error to try to get the addend of a REL section. If, for example, a x86_64 file has a REL section, that file is corrupted and we should reject it. Using ErrorOr is not ideal since we check the section type once per relocation instead of once per section. Checking once per section would involve getRelocationAddend just asserting and callers checking the section before iterating over the relocations. In any case, this is an improvement and includes a test. llvm-svn: 240176
* Fix header path in CMake. NFC.Pete Cooper2015-06-191-1/+1
| | | | | | | The ADDITIONAL_HEADER_DIRS command can be used to tell UIs that a given library owns certain headers. The path for MCParser was missing MC/ in it. llvm-svn: 240175
* MIR Parser: report an error when a basic block isn't found.Alex Lorenz2015-06-192-1/+21
| | | | | | | This commit reports an error when the MIR parser can't find a basic block with the machine basic block's name. llvm-svn: 240174
* [LoopDist] Rename RuntimeCheckEmitter to LoopVersioning, NFCAdam Nemet2015-06-191-8/+8
| | | | llvm-svn: 240165
* [LoopDist] Move pointer-to-partition computation out of RuntimeCheckEmitter, NFCAdam Nemet2015-06-191-18/+12
| | | | | | | This starts preparing the class to become a (more) general LoopVersioning utility class. llvm-svn: 240164
* Delete dead code. NFC.Rafael Espindola2015-06-191-26/+0
| | | | llvm-svn: 240160
* AMDGPU: Fix filename in commentMatt Arsenault2015-06-191-1/+1
| | | | llvm-svn: 240151
* Make getRelocationSection MachO only.Rafael Espindola2015-06-197-39/+9
| | | | | | | | | | | | | | There are 3 types of relocations on MachO * Scattered * Section based * Symbol based On ELF and COFF relocations are symbol based. We were in the strange situation that we abstracted over two of them. This makes section based relocations MachO only. llvm-svn: 240149
* MIR Serialization: Serialize the list of machine basic blocks with simple ↵Alex Lorenz2015-06-194-0/+124
| | | | | | | | | | | | | | attributes. This commit implements the initial serialization of machine basic blocks in a machine function. Only the simple, scalar MBB attributes are serialized. The reference to LLVM IR's basic block is preserved when that basic block has a name. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10465 llvm-svn: 240145
* [SLP] Vectorize for all-constant entries.Michael Zolotukhin2015-06-192-2/+20
| | | | | | Differential Revision: http://reviews.llvm.org/D10531 llvm-svn: 240144
* AMDGPU: Fix some places missed in renameMatt Arsenault2015-06-1920-17/+17
| | | | llvm-svn: 240143
* MIR Serialization: use default member initializers to initialize ↵Alex Lorenz2015-06-191-9/+3
| | | | | | | | yaml::MachineFunction. NFC. Default member initializers are permitted since r236244. llvm-svn: 240142
* Typo. NFC.Chad Rosier2015-06-191-2/+1
| | | | llvm-svn: 240141
* Avoid warning about inability to cast from ptr-to-obj to ptr-to-fun.Douglas Katzman2015-06-191-10/+10
| | | | | | Use POSIX.1-2003 Technical Corrigendum 1 suggested workaround. llvm-svn: 240140
* Fixed/added namespace ending comments using clang-tidy. NFCAlexander Kornienko2015-06-19940-1157/+1157
| | | | | | | | | | | | | The patch is generated using this command: tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ llvm/lib/ Thanks to Eugene Kosov for the original patch! llvm-svn: 240137
* Fix the build.Rafael Espindola2015-06-192-2/+2
| | | | | | Sorry, I have no idea how grep failed to find this. llvm-svn: 240133
* Replace EM_486 with EM_IAMCU.Rafael Espindola2015-06-191-1/+1
| | | | | | | This matches the current http://www.sco.com/developers/gabi/latest/ch4.eheader.html#machine llvm-svn: 240132
* [ASan] Initial support for Kernel AddressSanitizerAlexander Potapenko2015-06-192-44/+63
| | | | | | | | | This patch adds initial support for the -fsanitize=kernel-address flag to Clang. Right now it's quite restricted: only out-of-line instrumentation is supported, globals are not instrumented, some GCC kasan flags are not supported. Using this patch I am able to build and boot the KASan tree with LLVMLinux patches from github.com/ramosian-glider/kasan/tree/kasan_llvmlinux. To disable KASan instrumentation for a certain function attribute((no_sanitize("kernel-address"))) can be used. llvm-svn: 240131
* Make all temporary symbols unnamed.Rafael Espindola2015-06-1925-130/+125
| | | | | | | | | | | | | | | | What this does is make all symbols that would otherwise start with a .L (or L on MachO) unnamed. Some of these symbols still show up in the symbol table, but we can just make them unnamed. In order to make sure we produce identical results when going thought assembly, all .L (not just the compiler produced ones), are now unnamed. Running llc on llvm-as.opt.bc, the peak memory usage goes from 208.24MB to 205.57MB. llvm-svn: 240130
* IRBuilder: Add unit tests for construction of globals with address spaceTobias Grosser2015-06-191-0/+12
| | | | | | This was forgotten in r240113. Thanks Eric for paying attention. llvm-svn: 240124
* CMake: Stop using LLVM's custom parse_arguments (delete implementation). NFCFilipe Cabecinhas2015-06-191-80/+0
| | | | | | | | | | | | | | | | Summary: Finally, delete LLVM's parse_arguments() definition. Second part of D10531. This is dependent on http://reviews.llvm.org/D10529 Reviewers: pcc, beanz, chapuni Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10531 llvm-svn: 240122
* CMake: Stop using LLVM's custom parse_arguments. NFCFilipe Cabecinhas2015-06-191-8/+7
| | | | | | | | | | | | | | | | | | Summary: Use CMake's cmake_parse_arguments() instead. It's called in a slightly different way, but supports all our use cases. It's in CMake 2.8.8, which is our minimum supported version. CMake 3.0 doc (roughly the same. No direct link to 2.8.8 doc): http://www.cmake.org/cmake/help/v3.0/module/CMakeParseArguments.html?highlight=cmake_parse_arguments Reviewers: pcc, beanz, chapuni Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10531 llvm-svn: 240121
* [ARM] Look through concat when lowering in-place shuffles (VZIP, ..)Ahmed Bougacha2015-06-194-241/+70
| | | | | | | | | | | | | | | | | | | | | | | | | Currently, we canonicalize shuffles that produce a result larger than their operands with: shuffle(concat(v1, undef), concat(v2, undef)) -> shuffle(concat(v1, v2), undef) because we can access quad vectors (see PerformVECTOR_SHUFFLECombine). This is useful in the general case, but there are special cases where native shuffles produce larger results: the two-result ops. We can look through the concat when lowering them: shuffle(concat(v1, v2), undef) -> concat(VZIP(v1, v2):0, :1) This lets us generate the native shuffles instead of scalarizing to dozens of VMOVs. Differential Revision: http://reviews.llvm.org/D10424 llvm-svn: 240118
* [ARM] Factor out two-result shuffle matching. NFCI.Ahmed Bougacha2015-06-191-26/+35
| | | | | | | In preparation for a future patch: makes it easier to do the same matching to generate different nodes, without duplication. llvm-svn: 240116
* [ARM] Add D-sized vtrn/vuzp/vzip tests, and cleanup. NFC.Ahmed Bougacha2015-06-193-79/+819
| | | | llvm-svn: 240114
* IRBuilder: Allow globals to be constructed in a specific address spaceTobias Grosser2015-06-192-6/+10
| | | | llvm-svn: 240113
* Fix "the the" in comments.Eric Christopher2015-06-1932-40/+40
| | | | llvm-svn: 240112
* MIR Serialization: Reenable one of the MIRParser tests by reverting r239805.Alex Lorenz2015-06-181-1/+0
| | | | | | | | | The test 'llvm/test/CodeGen/MIR/machine-function.mir' was disabled on x86 msc18 in r239805 as it failed. My commit r240054 have fixed the problem, so this commit reverts the commit that disabled the test as it should pass now. llvm-svn: 240074
* Improve the --expand-relocs handling of MachO.Rafael Espindola2015-06-1817-459/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In a relocation target can take 3 basic forms * A r_value in scattered relocations. * A symbol in external relocations. * A section is non-external relocations. Have the dump reflect that. With this change we go from CHECK-NEXT: Extern: 0 CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5) CHECK-NEXT: Symbol: 0x2 CHECK-NEXT: Scattered: 0 To just // CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5) // CHECK-NEXT: Section: __data (2) Since the relocation is with a section, we print the seciton name and don't need to say that it is not scattered or external. Someone motivated can add further special cases for things like ARM64_RELOC_ADDEND and ARM_RELOC_PAIR. llvm-svn: 240073
* Avoid redundant select node in early if-conversion passYi Jiang2015-06-182-4/+54
| | | | llvm-svn: 240072
* Switch lowering: enable whole-switch jump tables at -O0.Hans Wennborg2015-06-182-27/+53
| | | | | | | | To same compile time, the analysis to find dense case-clusters in switches is not done at -O0. However, when the whole switch is dense enough, it is easy to turn it into a jump table, resulting in much faster code with no extra effort. llvm-svn: 240071
* Pass --expand-relocs to a few more tests.Rafael Espindola2015-06-184-52/+420
| | | | llvm-svn: 240069
* use SDValue bool operator; NFCISanjay Patel2015-06-181-3/+2
| | | | llvm-svn: 240064
* add test to show suboptimal load merging behaviorSanjay Patel2015-06-181-0/+25
| | | | llvm-svn: 240063
* [X86][SSE][CostModel] Fixed uitofp/sitofp cost target tests to specify ↵Simon Pilgrim2015-06-182-5/+5
| | | | | | sse2/avx2/avx512f directly instead of via a cpu model. llvm-svn: 240062
* fixed to test attributes and use better checksSanjay Patel2015-06-181-151/+168
| | | | | | | | | | 1. Used update_llc_test_checks.py to tighten checks 2. Fixed triple (nothing Darwin-specific here) 3. Replaced CPU specifiers with attributes 4. Fixed comments 5. Removed IvyBridge run because it did not add any coverage llvm-svn: 240058
* [Hexagon] Fixing unused field copypasta.Colin LeMahieu2015-06-181-9/+3
| | | | llvm-svn: 240055
* MIR Serialization: initialize the fields without the default initializers in ↵Alex Lorenz2015-06-181-0/+6
| | | | | | | | | | | | | | | yaml::MachineFunction My commit r239790 which introduced serialization for simple machine function attributes didn't initialize them when parsing because I have misread the documentation for YAML IO's mapOptional method. The mapOptional method doesn't actually set the values to the values returned by the default constructor for that type when the key value pair is missing, it just doesn't modify those values, so they still contain the value that was set during initialization by the default constructor. But the fields in yaml::MachineFunction with types like unsigned and bool are not initialized by default, and thus they can still be uninitialized after mapOptional during parsing. This commit adds default initialization for those fields to prevent this. llvm-svn: 240054
* Use --expand-relocs in a test. It will make the next change easier to read.Rafael Espindola2015-06-181-11/+91
| | | | llvm-svn: 240053
* [Hexagon] Printing packet brackets when asm printing and adding a number of ↵Colin LeMahieu2015-06-189-36/+266
| | | | | | tests that test packet brackets. llvm-svn: 240051
* [MC] Adding prettyPrintAsm to MCTargetStreamer to allow targets to ↵Colin LeMahieu2015-06-183-1/+13
| | | | | | specialize how instructions are printed to asm. llvm-svn: 240050
* [X86] Rename RegInfo to TRI as suggested by EricReid Kleckner2015-06-182-39/+39
| | | | llvm-svn: 240047
* [X86] Refactor stack adjustments into X86FrameLowering::BuildStackAdjustmentReid Kleckner2015-06-183-107/+93
| | | | | | | | Deduplicates some code and lets us use LEA on atom when adjusting the stack around callee-cleanup calls. This is the only intended functionality change. llvm-svn: 240044
* [BranchFolding] Replace custom MachineInstr with MachineInstrExpressionTraitBenjamin Kramer2015-06-181-46/+6
| | | | | | | While the hash functions are subtly different it shouldn't have an impact. Instructions are checked with isIdenticalTo later. llvm-svn: 240040
OpenPOWER on IntegriCloud