summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [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
* Fix ASAN bot; missing bookkeeping in r240136.Marshall Clow2015-06-191-0/+1
| | | | llvm-svn: 240139
* Fix the lldb build for the EM_486 change.Rafael Espindola2015-06-192-2/+2
| | | | llvm-svn: 240138
* 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 PR#18843. Thanks to Howard for the fixMarshall Clow2015-06-192-1/+8
| | | | llvm-svn: 240136
* Fix typo in comment.Douglas Katzman2015-06-191-1/+1
| | | | llvm-svn: 240135
* Add nominal support for 'shave' target.Douglas Katzman2015-06-196-0/+193
| | | | | | | | | | | | | | This change passes through C and assembler jobs to Movidius tools by constructing commands which are the same as ones produces by the examples in the SDK. But rather than reference MV_TOOLS_DIR to find tools, we will assume that binaries are installed wherever the Driver would find its native tools. Similarly, this change assumes that -I options will "just work" based on where SDK headers get installed, rather than baking into the Driver some magic paths. Differential Revision: http://reviews.llvm.org/D10440 llvm-svn: 240134
* 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-1917-62/+171
| | | | | | | | | 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
* clang-format: Make exception to AlwaysBreakBeforeMultilineStrings moreDaniel Jasper2015-06-192-1/+5
| | | | | | | | | | | | | | | | | | conservative. In particular, this fixes an unwanted corner case. Before: string s = someFunction("aaaa" "bbbb"); After: string s = someFunction( "aaaa" "bbbb"); llvm-svn: 240129
* clang-format: Add TypeScript detection to git-clang-format.Daniel Jasper2015-06-191-0/+1
| | | | llvm-svn: 240128
* clang-format: Better fix to detect elaborated enum return types.Daniel Jasper2015-06-192-3/+12
| | | | | | | The previous one (r240021) regressed: enum E Type::f() { .. } llvm-svn: 240127
* [ATTRIBUTE] Fixed test compatibility.Alexey Bataev2015-06-191-1/+1
| | | | llvm-svn: 240126
* [ATTRIBUTE] Support base vector types of __attribute__((mode)), patch by ↵Alexey Bataev2015-06-194-10/+104
| | | | | | | | | | | | Alexey Frolov Base type of attribute((mode)) can actually be a vector type. The patch is to distinguish between base type and base element type. This fixes http://llvm.org/PR17453. Differential Revision: http://reviews.llvm.org/D10058 llvm-svn: 240125
* 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
* [LLDB][MIPS] ABI Plugin for MIPS64Bhushan D. Attarde2015-06-198-0/+728
| | | | | | | | | | | SUMMARY: This patch implements ABI plugin for MIPS64. Reviewers: clayborg Subscribers: mohit.bhakkad, sagar, jaydeep, emaste, nitesh.jain, lldb-commits Differential Revision: http://reviews.llvm.org/D10534 llvm-svn: 240123
* 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
* CMake: Stop using LLVM's custom parse_arguments. NFCFilipe Cabecinhas2015-06-1914-50/+43
| | | | | | | | | | | | | | | | | | | | | 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 Since I was already changing these calls, I changed ARCH and LIB into ARCHS and LIBS to make it more clear that they're lists of arguments. Reviewers: eugenis, samsonov, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10529 llvm-svn: 240120
* Add NVIDIA vprintf printing to RuntimeDebugBuilderTobias Grosser2015-06-192-1/+167
| | | | | | 2nd try, this time with the corresponding LLVM IRBuilder changes in place. llvm-svn: 240119
* [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
* CFI: Implement bitset emission for the Microsoft ABI.Peter Collingbourne2015-06-194-26/+203
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang's control flow integrity implementation works by conceptually attaching "tags" (in the form of bitset entries) to each virtual table, identifying the names of the classes that the virtual table is compatible with. Under the Itanium ABI, it is simple to assign tags to virtual tables; they are simply the address points, which are available via VTableLayout. Because any overridden methods receive an entry in the derived class's virtual table, a check for an overridden method call can always be done by checking the tag of whichever derived class overrode the method call. The Microsoft ABI is a little different, as it does not directly use address points, and overrides in a derived class do not cause new virtual table entries to be added to the derived class; instead, the slot in the base class is reused, and the compiler needs to adjust the this pointer at the call site to (generally) the base class that initially defined the method. After the this pointer has been adjusted, we cannot check for the derived class's tag, as the virtual table may not be compatible with the derived class. So we need to determine which base class we have been adjusted to. Specifically, at each call site, we use ASTRecordLayout to identify the most derived class whose virtual table is laid out at the "this" pointer offset we are using to make the call, and check the virtual table for that tag. Because address point information is unavailable, we "reconstruct" it as follows: any virtual tables we create for a non-derived class receive a tag for that class, and virtual tables for a base class inside a derived class receive a tag for the base class, together with tags for any derived classes which are laid out at the same position as the derived class (and therefore have compatible virtual tables). Differential Revision: http://reviews.llvm.org/D10520 llvm-svn: 240117
* [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
* Fix Windows test failure.Peter Collingbourne2015-06-191-1/+1
| | | | llvm-svn: 240115
* [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
* Add control flow integrity diagnosis function to UBSan runtime library.Peter Collingbourne2015-06-1913-14/+129
| | | | | | | | Also includes execution tests for the feature. Differential Revision: http://reviews.llvm.org/D10269 llvm-svn: 240111
* Fix "the the" in comments/documentation/etc.Eric Christopher2015-06-1910-12/+11
| | | | llvm-svn: 240110
* Implement diagnostic mode for -fsanitize=cfi*, -fsanitize=cfi-diag.Peter Collingbourne2015-06-1912-55/+118
| | | | | | | | | | | | | | | | | This causes programs compiled with this flag to print a diagnostic when a control flow integrity check fails instead of aborting. Diagnostics are printed using UBSan's runtime library. The main motivation of this feature over -fsanitize=vptr is fidelity with the -fsanitize=cfi implementation: the diagnostics are printed under exactly the same conditions as those which would cause -fsanitize=cfi to abort the program. This means that the same restrictions apply regarding compiling all translation units with -fsanitize=cfi, cross-DSO virtual calls are forbidden, etc. Differential Revision: http://reviews.llvm.org/D10268 llvm-svn: 240109
* Revert "Revert "[CMake] LSan is not actually available on Darwin.""Alexey Samsonov2015-06-193-12/+10
| | | | | | Re-land fixed version of r239955. llvm-svn: 240108
* [msan] Intercept fopencookie.Evgeniy Stepanov2015-06-195-0/+136
| | | | | | https://code.google.com/p/memory-sanitizer/issues/detail?id=86 llvm-svn: 240107
* Fix hexagon test failure.Peter Collingbourne2015-06-191-1/+1
| | | | llvm-svn: 240106
* Introduce -fsanitize-trap= flag.Peter Collingbourne2015-06-1813-67/+177
| | | | | | | | | | | | | | | | | | | | | | | | This flag controls whether a given sanitizer traps upon detecting an error. It currently only supports UBSan. The existing flag -fsanitize-undefined-trap-on-error has been made an alias of -fsanitize-trap=undefined. This change also cleans up some awkward behavior around the combination of -fsanitize-trap=undefined and -fsanitize=undefined. Previously we would reject command lines containing the combination of these two flags, as -fsanitize=vptr is not compatible with trapping. This required the creation of -fsanitize=undefined-trap, which excluded -fsanitize=vptr (and -fsanitize=function, but this seems like an oversight). Now, -fsanitize=undefined is an alias for -fsanitize=undefined-trap, and if -fsanitize-trap=undefined is specified, we treat -fsanitize=vptr as an "unsupported" flag, which means that we error out if the flag is specified explicitly, but implicitly disable it if the flag was implied by -fsanitize=undefined. Differential Revision: http://reviews.llvm.org/D10464 llvm-svn: 240105
* Don't link ObjCARCOpts twice. Fixes PR22543Keno Fischer2015-06-182-2/+1
| | | | | | | | ObjCARCOpts is already included by ClangCodeGen. Linking it again causes the error in PR22543. Differential Revision: http://reviews.llvm.org/D10399 llvm-svn: 240104
* COFF: Add /nodefaultlib and /merge for .drectve.Rui Ueyama2015-06-181-0/+6
| | | | llvm-svn: 240077
* COFF: Handle /include in .drectve.Rui Ueyama2015-06-183-7/+35
| | | | | | | | | | | | | We don't want to insert a new symbol to the symbol table while reading a .drectve section because it's going to be too complicated. That we are reading a directive section means that we are currently reading some object file. Adding a new undefined symbol to the symbol table can trigger a library file to read a new file, so it would make the call stack too deep. In this patch, I add new symbol names to a list to resolve them later. llvm-svn: 240076
* COFF: Allow identical alternatename options.Rui Ueyama2015-06-184-10/+13
| | | | | | | | Alternatename option is in the form of /alternatename:<from>=<to>. It is an error if there are two options having the same <from> but different <to>. It is *not* an error if both are the same. llvm-svn: 240075
* 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
* Update comment about the UNWIND_X86_64_MODE_STACK_IND encodingJason Molenda2015-06-181-1/+2
| | | | | | bug in old clang's. llvm-svn: 240070
* Pass --expand-relocs to a few more tests.Rafael Espindola2015-06-184-52/+420
| | | | llvm-svn: 240069
OpenPOWER on IntegriCloud