summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix cast in arm watchpoint handling codeTamas Berghammer2015-10-131-1/+1
| | | | | | | We had an incorrect sign extension when castion from a pointer to an lldb::addr_t what broke the watchpoint hit detection on arm. llvm-svn: 250180
* [WinEH] Iterate state changes instead of invokesJoseph Tremoulet2015-10-132-151/+196
| | | | | | | | | | | | | | | | | | | | | | Summary: Add an iterator that can walk across blocks and which visits the state transitions rather than state ranges, with explicit transitions to -1 indicating the presence of top-level calls that may throw and cause the current function to unwind to caller. This will simplify code that needs to identify nested try regions. Refactor SEH and C++EH table generation to use the new InvokeStateChangeIterator, and remove the InvokeLabelIterator they were using. Reviewers: majnemer, andrew.w.kaylor, rnk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13623 llvm-svn: 250179
* Remove extra semicolons for -Wpedantic.Rui Ueyama2015-10-131-4/+4
| | | | llvm-svn: 250178
* Fix a couple of comments; NFCXinliang David Li2015-10-131-6/+6
| | | | llvm-svn: 250177
* ELF2: Fix BSD's __progname symbol issue.Rui Ueyama2015-10-136-4/+51
| | | | | | | | | | | | | BSD's DSO files have undefined symbol "__progname" which is defined in crt1.o. On that system, both user programs and system shared libraries depend on each other. In general, we need to put symbols defined by user programs which are referenced by shared libraries to user program's .dynsym. http://reviews.llvm.org/D13637 llvm-svn: 250176
* Symbols::LocateExecutableSymbolFile() shouldn't try to look for files in ↵Vadim Macagon2015-10-131-0/+2
| | | | | | | | | | | | | | | | /usr/lib/debug on Windows Summary: /usr/lib/debug doesn't exist on Windows so there's no point even attempting to look for symbol files in there. Reviewers: zturner, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13636 llvm-svn: 250175
* function names should start with a lower case letter; NFCSanjay Patel2015-10-134-116/+116
| | | | llvm-svn: 250174
* Always pass a -dwarf-version argument to integrated as.Douglas Katzman2015-10-133-3/+19
| | | | | | | | This removes the default of 3 hidden in the assembler previously. Fixes breakage caused by r249655, reported by vsukharev. llvm-svn: 250173
* ELF2: Rename ElfKind -> EKind.Rui Ueyama2015-10-134-7/+6
| | | | | | ELFKind as a type name and ElfKind is a variable name was too subtle. llvm-svn: 250172
* ELF2: Fix typos in comment.Rui Ueyama2015-10-131-3/+3
| | | | llvm-svn: 250171
* Remove trailing whitespaces.Rui Ueyama2015-10-135-7/+7
| | | | llvm-svn: 250170
* This patch implements basic variant of lazy loading for x86_x64 and for X86 ↵George Rimar2015-10-1310-93/+338
| | | | | | | | | | | | | | | | | | | targets. What was done: 1) .got.plt section is created for functions that requires PLT. .got.plt has 3 predefined empty entries now that are required for dynamic linker. Also other new items created are configured to have correct jump to PLT[N]. 2) PLT section now has PLT[0] entry, also others ones are configured to support PLT->GOT(.got.plt) calls. 3) Implemented .rel[a].plt sections (based on patch http://reviews.llvm.org/D13569). 4) Fixed plt relocations types (based on patch http://reviews.llvm.org/D13589). NOTES: The .plt.got zero entry is still empty now. According to ELF specification it should hold the address of the dynamic structure, referenced with the symbol _DYNAMIC. The _DYNAMIC entry points to the .dynamic section which contains information used by the ELF interpreter to setup the binary. Differential Revision: http://reviews.llvm.org/D13651 llvm-svn: 250169
* ELF2: Move createTarget to Target.cpp.Rui Ueyama2015-10-133-18/+19
| | | | | | | | Now all Target<Arch> classes are used only in Target.cpp. We can put them in an anonymous namespace. In order to avoid merge conflict with other people's patches, I'll do that later. llvm-svn: 250168
* ELF2: Remove dead code.Rui Ueyama2015-10-134-33/+2
| | | | | | This code is completely a stub. We can resurrect when we start working on ARM. llvm-svn: 250167
* Appeasing build bots by linking in the proper libraries.Aaron Ballman2015-10-131-0/+1
| | | | llvm-svn: 250166
* Expose the clang-tidy misc-assign-operator-signature checker as ↵Aaron Ballman2015-10-133-6/+15
| | | | | | cppcoreguidelines-c-copy-assignment-signature. llvm-svn: 250165
* [Driver] Use the parent_path of the clang executable as the default InstalledDirBenjamin Kramer2015-10-132-2/+42
| | | | | | | | This is what most people want anyways. Clang -cc1's main() will override this but for other tools this is the most sensible default and avoids some work. llvm-svn: 250164
* Removed undefined and unused member. NFC.George Rimar2015-10-131-1/+0
| | | | llvm-svn: 250163
* don't repeat function/class/variable names in comments; NFCSanjay Patel2015-10-131-60/+46
| | | | llvm-svn: 250162
* Remove unnecessary include.Rafael Espindola2015-10-131-1/+0
| | | | llvm-svn: 250161
* [InstCombine][SSE4A] Remove broken INSERTQI range combining optimizationSimon Pilgrim2015-10-132-130/+4
| | | | | | | | As discussed in D13348 - the INSERTQI range combining code is wrong in that it confuses the insertion bit index with an extraction bit index. The remaining legal combines are very unlikely (especially once we've converted to shuffles in D13348) so I'm removing the optimization. llvm-svn: 250160
* Simplify by using Out<ELFT>::Opd.Rafael Espindola2015-10-131-6/+5
| | | | | | Also avoid extra dependencies on the section name. llvm-svn: 250159
* [X86] Add XSAVE intrinsic familyAmjad Aboud2015-10-1312-7/+485
| | | | | | | | | | | | Add intrinsics for the XSAVE instructions (XSAVE/XSAVE64/XRSTOR/XRSTOR64) XSAVEOPT instructions (XSAVEOPT/XSAVEOPT64) XSAVEC instructions (XSAVEC/XSAVEC64) XSAVES instructions (XSAVES/XSAVES64/XRSTORS/XRSTORS64) Differential Revision: http://reviews.llvm.org/D13014 llvm-svn: 250158
* [GlobalsAA] Turn GlobalsAA on again by defaultJames Molloy2015-10-131-1/+1
| | | | | | | | Now that all the known faults with GlobalsAA have been fixed, flip the big switch on -enable-non-lto-gmr again. Feel free to pester me with any more bugs found, and don't hesitate to flip the switch back off. llvm-svn: 250157
* [GlobalsAA] Don't assume anything about functions that may be overriddenJames Molloy2015-10-132-2/+26
| | | | | | | | Weak linkage and friends allow a symbol to be overriden outside the code generator's model, so GlobalsAA shouldn't assume that anything it can compute about such a symbol is valid. llvm-svn: 250156
* Remove unused diagnostic. NFC.Benjamin Kramer2015-10-131-2/+0
| | | | llvm-svn: 250155
* Test commitChristof Douma2015-10-131-1/+0
| | | | llvm-svn: 250154
* Remove unnecessary argument in ipo iteratorMichael Liao2015-10-131-4/+4
| | | | | | - Otherwise, it won't be compiled if that template is instantiated. llvm-svn: 250153
* [IndVars] NFC Cleanup.Sanjoy Das2015-10-131-66/+62
| | | | | | | | - Rename methods according to the LLVM Coding Style - Merge adjacent anonymous namespace block - Use `auto` in two places llvm-svn: 250152
* Fix line-ending issue. NFC.Michael Kuperstein2015-10-131-2/+2
| | | | llvm-svn: 250151
* [CMake] LLVM_PROFDATA_FILE only works if you're using clang, so we should ↵Chris Bieneman2015-10-132-1/+9
| | | | | | | | | | error out if it is specified when not using clang. Also updated the CMake docs. Based on post-commit review of r250108 from Sean Silvas. llvm-svn: 250150
* [X86] LLVM now prints XOP immediates as unsigned after r250147. Fix expected ↵Craig Topper2015-10-131-1/+1
| | | | | | check string accordingly. llvm-svn: 250149
* [X86] Mark the AAD and AAM aliases as not valid in 64-bit mode.Craig Topper2015-10-131-2/+2
| | | | llvm-svn: 250148
* [X86] Change all the i8imm operands in XOP instructions to u8imm so the ↵Craig Topper2015-10-131-10/+10
| | | | | | parser will check the size. llvm-svn: 250147
* Preliminary NetBSD supportBruce Mitchener2015-10-1313-1/+1460
| | | | | | | | | | | | | | | | | | | Summary: This adds platform code without the cmake/gmake glue to the existing infrastructure. The missing and incompatibility ptrace(2) bits (existing in FreeBSD) are under active research and development and will be submitted once verified to work. This code was tested to build and run on NetBSD-current/amd64. Proper build scripts will be integrated separately as a new commit. Reviewers: joerg Subscribers: tfiala, brucem, labath, emaste, lldb-commits Differential Revision: http://reviews.llvm.org/D13334 llvm-svn: 250146
* Revert 250089 due to bot failure. It failed when building clang itself with PGO.Manman Ren2015-10-137-222/+5
| | | | llvm-svn: 250145
* BitcodeWriter: Stop using implicit ilist iterator conversion, NFCDuncan P. N. Exon Smith2015-10-132-30/+23
| | | | | | | | | | Now LLVMBitWriter compiles without implicit ilist iterator conversions. In these cases, the cleanest thing was to switch to range-based for loops. Since there wasn't much noise I converted sub-loops and parent loops as a drive-by. llvm-svn: 250144
* [SCEV] Put some utilites in the ScalarEvolution classSanjoy Das2015-10-132-18/+31
| | | | | | | | | | | In a later commit, `SplitBinaryAdd` will be used outside `IsConstDiff`, so lift that out. And lift out `IsConstDiff` as `computeConstantDifference` to keep things clean and to avoid playing C++ access specifier games. NFC. llvm-svn: 250143
* TransformUtils: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-1326-255/+254
| | | | | | | | | | | Continuing the work from last week to remove implicit ilist iterator conversions. First related commit was probably r249767, with some more motivation in r249925. This edition gets LLVMTransformUtils compiling without the implicit conversions. No functional change intended. llvm-svn: 250142
* Looks like malformed-machos 00000031.a test is just getting a different errorKevin Enderby2015-10-131-6/+0
| | | | | | on some of the bots. I’ll remove this test for now. llvm-svn: 250141
* [modules] Improve error message on failed module load due to a missing file toRichard Smith2015-10-131-1/+3
| | | | | | say which module file referenced the missing file. llvm-svn: 250140
* Remove the EKind member variable.Rafael Espindola2015-10-132-22/+17
| | | | | | Now that the base class is templated, it is redundant with the type. llvm-svn: 250139
* DAGCombiner: Don't stop finding better chain on 2 aliasesMatt Arsenault2015-10-132-26/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | The comment says this was stopped because it was unlikely to be profitable. This is not true if you want to combine vector loads with multiple components. For a simple case that looks like t0 = load t0 ... t1 = load t0 ... t2 = load t0 ... t3 = load t0 ... t4 = store t0:1, t0:1 t5 = store t4, t1:0 t6 = store t5, t2:0 t7 = store t6, t3:0 We want to get all of these stores onto a chain that is a TokenFactor of these N loads. This mostly solves the AMDGPU merge-stores.ll regressions with -combiner-alias-analysis for merging vector stores of vector loads. llvm-svn: 250138
* [modules] Allow the error on importing a C++ module within an extern "C"Richard Smith2015-10-133-14/+20
| | | | | | | | | context (but otherwise at the top level) to be disabled, to support use of C++ standard library implementations that (legitimately) mark their <blah.h> headers as being C++ headers from C libraries that wrap things in 'extern "C"' a bit too enthusiastically. llvm-svn: 250137
* Tweak clang/test/CodeGen/debug-prefix-map.c to appease win32 hosts.NAKAMURA Takumi2015-10-131-1/+1
| | | | | | !1 = !DIFile(filename: "/var/empty\5C<stdin>", directory: "E:\5Cllvm\5Cbuild\5Ccmake-ninja\5Ctools\5Cclang\5Ctest\5CCodeGen") llvm-svn: 250136
* x86: preserve flags when folding atomic operationsJF Bastien2015-10-132-6/+46
| | | | | | | | | | | | | | | | | | | | | Summary: D4796 taught LLVM to fold some atomic integer operations into a single instruction. The pattern was unaware that the instructions clobbered flags. This patch adds the missing EFLAGS definition. Floating point operations don't set flags, the subsequent fadd optimization is therefore correct. The same applies for surrounding load/store optimizations. Reviewers: rsmith, rtrieu Subscribers: llvm-commits, reames, morisset Differential Revision: http://reviews.llvm.org/D13680 llvm-svn: 250135
* [modules] Fix merging of __va_list_tag's implicit special member functions.Richard Smith2015-10-136-6/+57
| | | | | | | | | | | We model predefined declarations as not being from AST files, but in most ways they act as if they come from some implicit prebuilt module file imported before all others. Therefore, if we see an update to the predefined 'struct __va_list_tag' declaration (and we've already loaded any modules), it needs a corresponding update record, even though it didn't technically come from an AST file. llvm-svn: 250134
* Use llvm::sys::path::is_absolute instead of my own.Rui Ueyama2015-10-131-5/+2
| | | | llvm-svn: 250133
* AMDGPU: Refactor isVGPRToSGPRCopyMatt Arsenault2015-10-131-19/+48
| | | | | | | It should now correctly handle physical registers and make it easier to identify the other direction. llvm-svn: 250132
* [libstdc++ data-formatters] Remove size limits.Siva Chandra2015-10-131-11/+0
| | | | | | | | | | Reviewers: granata.enrico Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13682 llvm-svn: 250131
OpenPOWER on IntegriCloud