summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Enable clang to continue to parse libstdc++4.6 and stlport after r210091.Nico Weber2014-07-023-2/+80
| | | | | | | | | | r210091 made initialization checking more strict in c++11 mode. LWG2193 is about changing standard libraries to still be valid under these new rules, but older libstdc++ (e.g. libstdc++4.6 in -D_GLIBCXX_DEBUG=1 mode, or stlport) do not implement that yet. So fall back to the C++03 semantics for container classes in system headers below the std namespace. llvm-svn: 212238
* Update the MSVC compatibilty document for class template parsingReid Kleckner2014-07-021-16/+35
| | | | llvm-svn: 212237
* So that we can include frame lowering in the subtarget, remove includeEric Christopher2014-07-025-5/+10
| | | | | | | circular dependency with the subtarget by inlining accessor methods and outlining a routine. llvm-svn: 212236
* Add the -reverse-sort flag (aka -r) to llvm-nmKevin Enderby2014-07-022-24/+69
| | | | | | which exists in other Unix nm(1)’s. llvm-svn: 212235
* So that we can include target lowering in the subtarget, remove includeEric Christopher2014-07-024-64/+80
| | | | | | | circular dependency with the subtarget by inlining accessor methods and outlining a routine. llvm-svn: 212234
* Fix linkage bug that miscompiled variable templates instantiated from ↵Larisse Voufo2014-07-021-0/+64
| | | | | | | | | | | similarly named local types. In essence, this bug ensures that the x<Foo> specialization in function foo() defined as follows differs between two distinct translation units. static int &foo() { struct Foo { }; return x<Foo>; } llvm-svn: 212233
* Fix a warning about undeclared call to abort().Dan Albert2014-07-021-1/+3
| | | | llvm-svn: 212232
* Update comment and include guard.Rafael Espindola2014-07-024-11/+11
| | | | | | I missed these when moving the files. llvm-svn: 212231
* [OCaml] Documentation improvements.Peter Zotov2014-07-021-26/+28
| | | | | | Patch by Julien Sagot llvm-svn: 212230
* More editorial issues in MSVCCompatibility.rstDavid Majnemer2014-07-021-1/+1
| | | | | | Make the status text for lambdas green. llvm-svn: 212229
* Fix typos.Eric Christopher2014-07-022-2/+2
| | | | llvm-svn: 212228
* Fix Typo in MSVCCompatibility.rstWarren Hunt2014-07-021-2/+2
| | | | | | Also removed a sentance that was no longer relevant. llvm-svn: 212227
* Revert "DebugInfo: Ensure that all debug location scope chains from ↵David Blaikie2014-07-023-34/+4
| | | | | | | | | | | | instructions within a function, lead to the function itself." This reverts commit r212205. Reverting this again, still seeing crashes when building compiler-rt... Sorry for the continued noise, not sure why I'm failing to reproduce this locally. llvm-svn: 212226
* lldb - problem with some PTRACE_* constants in NativeProcessLinux.cpp fileTodd Fiala2014-07-021-1/+15
| | | | | | | | | | | | | | | | See http://reviews.llvm.org/D4366 for details. Change by Paul Paul Osmialowski Today this is the only problem that I'm facing trying to cross-compile lldb for AArch64 using Linaro's toolchain. PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS are not defined for AArch64 These things can be defined different ways for other architectures, e.g. for x86_64 Linux, asm/ptrace-abi.h defines them as preprocessor constants while sys/ptrace.h defines them in enum along with corresponding PT_* preprocessor constants NativeProcessLinux.cpp includes sys/ptrace.h To avoid accidental redefinition of enums with preprocessor constants, I'm proposing this patch which first checks for PT_* preprocessor constants then checks for PTRACE_* constants then when it still can not find them, it defines preprocessor constants. Similar approach was already used for PTRACE_GETREGSET and PTRACE_SETREGSET constants; in this case however it was easier, since enum values in sys/ptrace.h and preprocessor constants shared all exactly the same names (e.g. there's no additional PT_GETREGSET name defined). llvm-svn: 212225
* Move the data layout and selection dag info from the mips target machineEric Christopher2014-07-024-42/+46
| | | | | | down to the subtarget. llvm-svn: 212224
* [X86] AVX512: Allow writemask argument in vpermt* intrinsicsAdam Nemet2014-07-022-5/+22
| | | | llvm-svn: 212223
* [X86] AVX512: Generate Pat<>'s for the vpermt2* intrinsics via multiclassAdam Nemet2014-07-021-19/+14
| | | | | | | | | | | | | This new multiclass, avx512_perm_table_3src derives from the current one and provides the Pat<>. The next patch will add another Pat<> that uses the writemask. Note that I dropped the type annotation from the intrinsic call, i.e.: (v16f32 VR512:$src1) -> R512:$src1. I think that this should be fine (at least many intrinsic calls don't provide them) and it greatly reduces the number of template arguments. llvm-svn: 212222
* [X86] AVX512: Add writemask variants for vperm*2*Adam Nemet2014-07-023-14/+146
| | | | | | | | | This includes assembler and codegen support (see the new tests in avx512-encodings.s and avx512-shuffle.ll). <rdar://problem/17492620> llvm-svn: 212221
* Add host layer support for pipes.Greg Clayton2014-07-028-103/+314
| | | | | | | | | | | Windows does support pipes, but they do so in a slightly different way. Added a Host layer which abstracts the use of pipes into a new Pipe class that everyone can use. Windows benefits include: - Being able to interrupt running processes when IO is directly hooked up - being able to interrupt long running python scripts - being able to interrupt anything based on ConnectionFileDescriptor llvm-svn: 212220
* Fixup typo in MSVCCompatibility.rstDavid Majnemer2014-07-021-1/+1
| | | | llvm-svn: 212219
* R600: Add a comment that llvm.AMDGPU.trunc is a legacy intrinsicTom Stellard2014-07-021-1/+1
| | | | llvm-svn: 212218
* R600/SI: Use a ComplexPattern for ADDR64 addressing of MUBUF loadsTom Stellard2014-07-022-37/+35
| | | | llvm-svn: 212217
* R600: Promote i64 loads to v2i32Tom Stellard2014-07-026-15/+19
| | | | llvm-svn: 212216
* R600/SI: Adjsut SGPR live ranges before register allocationTom Stellard2014-07-024-0/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SGPRs are written by instructions that sometimes will ignore control flow, which means if you have code like: if (VGPR0) { SGPR0 = S_MOV_B32 0 } else { SGPR0 = S_MOV_B32 1 } The value of SGPR0 will 1 no matter what the condition is. In order to deal with this situation correctly, we need to view the program as if it were a single basic block when we calculate the live ranges for the SGPRs. They way we actually update the live range is by iterating over all of the segments in each LiveRange object and setting the end of each segment equal to the start of the next segment. So a live range like: [3888r,9312r:0)[10032B,10384B:0) 0@3888r will become: [3888r,10032B:0)[10032B,10384B:0) 0@3888r This change will allow us to use SALU instructions within branches. llvm-svn: 212215
* R600/SI: Add verifier check for immediates in register operands.Tom Stellard2014-07-024-2/+33
| | | | llvm-svn: 212214
* Make LLDB.framework link again on Yosemite.Greg Clayton2014-07-021-0/+16
| | | | llvm-svn: 212213
* Remove non-static field initializer to appease MSVCAlexey Samsonov2014-07-021-1/+2
| | | | llvm-svn: 212212
* XFAIL test on Android (this is a known issue)Alexey Samsonov2014-07-021-0/+3
| | | | llvm-svn: 212211
* Fix configure+make build.Rafael Espindola2014-07-023-2/+16
| | | | llvm-svn: 212210
* Move CFG building code to a new lib/MC/MCAnalysis library.Rafael Espindola2014-07-0220-36/+41
| | | | | | | The new library is 150KB on a Release+Asserts build, so it is quiet a bit of code that regular users of MC don't need to link with now. llvm-svn: 212209
* Removing Carbon dependency by removing obsolete code.Jean-Daniel Dupas2014-07-022-103/+0
| | | | | | | The only part using Carbon is a function in Host.mm used to open a file in Xcode. That code is broken and it is no longer useful as Xcode supports LLDB natively. llvm-svn: 212208
* If a breakpoint gets deleted, any SBBreakpoints representing thatJim Ingham2014-07-024-1/+90
| | | | | | breakpoint should return false from IsValid. llvm-svn: 212206
* DebugInfo: Ensure that all debug location scope chains from instructions ↵David Blaikie2014-07-024-50/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | within a function, lead to the function itself. Originally committed in r211723, reverted in r211724 due to failure cases found and fixed (ArgumentPromotion: r211872, Inlining: r212065), committed again in r212085 and reverted again in r212089 after fixing some other cases, such as debug info subprogram lists not keeping track of the function they represent (r212128) and then short-circuiting things like LiveDebugVariables that build LexicalScopes for functions that might not have full debug info. And again, I believe the invariant actually holds for some reasonable amount of code (but I'll keep an eye on the buildbots and see what happens... ). Original commit message: PR20038: DebugInfo: Inlined call sites where the caller has debug info but the call itself has no debug location. This situation does bad things when inlined, so I've fixed Clang not to produce inlinable call sites without locations when the caller has debug info (in the one case where I could find that this occurred). This updates the PR20038 test case to be what clang now produces, and readds the assertion that had to be removed due to this bug. I've also beefed up the debug info verifier to help diagnose these issues in the future, and I hope to add checks to the inliner to just assert-fail if it encounters this situation. If, in the future, we decide we have to cope with this situation, the right thing to do is probably to just remove all the DebugLocs from the inlined instructions. llvm-svn: 212205
* [RegAllocGreedy] Provide a subtarget hook to disable the local reassignmentQuentin Colombet2014-07-023-4/+25
| | | | | | | | | | | | heuristic. By default, no functionality change. This is a follow-up of r212099. This hook provides a finer grain to control the optimization. <rdar://problem/17444599> llvm-svn: 212204
* Don't try to construct debug LexicalScopes hierarchy for functions that do ↵David Blaikie2014-07-028-44/+212
| | | | | | | | | | | | | | | | | | | | | | | | | not have top level debug information. If a function isn't actually in a CU's subprogram list in the debug info metadata, ignore all the DebugLocs and don't try to build scopes, track variables, etc. While this is possibly a minor optimization, it's also a correctness fix for an incoming patch that will add assertions to LexicalScopes and the debug info verifier to ensure that all scope chains lead to debug info for the current function. Fix up a few test cases that had broken/incomplete debug info that could violate this constraint. Add a test case where this occurs by design (inlining a debug-info-having function in an attribute nodebug function - we want this to work because /if/ the nodebug function is then inlined into a debug-info-having function, it should be fine (and will work fine - we just stitch the scopes up as usual), but should the inlining not happen we need to not assert fail either). llvm-svn: 212203
* Constify the Function pointers in the result of makeSubprogramMapDavid Blaikie2014-07-024-8/+8
| | | | | | | These don't need to be mutable and callers being added soon in CodeGen won't have access to non-const Module&. llvm-svn: 212202
* AArch64: Re-enable AArch64AddressTypePromotionDuncan P. N. Exon Smith2014-07-024-2/+58
| | | | | | | | | | | This reverts commits r212189 and r212190. While this pass was accidentally disabled (until r212073), r205437 slipped in a use of `auto` that should have been `auto&`. This fixes PR20188. llvm-svn: 212201
* Add missing dependency to macho-dump.Rui Ueyama2014-07-021-1/+1
| | | | | | r212094 added a few tests that use macho-dump. llvm-svn: 212200
* AArch64: Remove unnecessary parensDuncan P. N. Exon Smith2014-07-021-1/+1
| | | | llvm-svn: 212199
* Derive run-time conditions for delinearizationTobias Grosser2014-07-0220-28/+534
| | | | | | | | | | | | | | | | | | | | | | | As our delinearization works optimistically, we need in some cases run-time checks that verify our optimistic assumptions. A simple example is the following code: void foo(long n, long m, long o, double A[n][m][o]) { for (long i = 0; i < 100; i++) for (long j = 0; j < 150; j++) for (long k = 0; k < 200; k++) A[i][j][k] = 1.0; } After clang linearized the access to A and we delinearized it again to A[i][j][k] we need to ensure that we do not access the delinearized array out of bounds (this information is not available in LLVM-IR). Hence, we need to verify the following constraints at run-time: CHECK: Assumed Context: CHECK: [o, m] -> { : m >= 150 and o >= 200 } llvm-svn: 212198
* R600: Fix crashes when an illegal type load or store is not handled.Matt Arsenault2014-07-021-2/+6
| | | | | | | I don't think anything hits this now, but will be exposed in future patches. llvm-svn: 212197
* CodeGen: make target builtins support languagesSaleem Abdulrasool2014-07-026-14/+64
| | | | | | | | | | This extends the target builtin support to allow language specific annotations (i.e. LANGBUILTIN). This is to allow MSVC compatibility whilst retaining the ability to have EABI targets use a __builtin_ prefix. This is merely to allow uniformity in the EABI case where the unprefixed name is provided as an alias in the header. llvm-svn: 212196
* Just adding a getHalfTy method to IRBuilder for completeness.Puyan Lotfi2014-07-021-0/+5
| | | | llvm-svn: 212195
* AArch64: Merge isa with dyn_castDuncan P. N. Exon Smith2014-07-021-2/+1
| | | | llvm-svn: 212194
* Update the MSVC Compatibility documentDavid Majnemer2014-07-021-14/+12
| | | | | | | | It hasn't been updated to reflect the progress we've made. We've fuzz tested VFTables, VBTables, layout, and RTTI data. We support lambdas that are compatible with their scheme. llvm-svn: 212193
* Start converting usages of off_t to other types.Zachary Turner2014-07-0216-44/+45
| | | | | | | | | | | | | | | | | | | | | | | off_t is a type which is used for file offsets. Even more specifically, it is only used by a limited number of C APIs that deal with files. Any usage of off_t where the variable is not intended to be used with one of these APIs is a bug, by definition. This patch corrects some easy mis-uses of off_t, generally by converting them to lldb::offset_t, but sometimes by using other types such as size_t, when appropriate. The use of off_t to represent these offsets has worked fine in practice on linux-y platforms, since we used _FILE_OFFSET_64 to guarantee that off_t was a uint64. On Windows, however, _FILE_OFFSET_64 is unrecognized, and off_t will always be 32-bit. So the usage of off_t on Windows actually leads to legitimate bugs. Reviewed by: Greg Clayton Differential Revision: http://reviews.llvm.org/D4358 llvm-svn: 212192
* ARCMigrate: simplify diagnostic handlingAlp Toker2014-07-024-15/+9
| | | | | | | | | | | | | Recent enhancements in the diagnostics engine mean that TransformActions::report() no longer needs to duplicate this suppression logic. That's great because the old code was flawed and would have attached notes to the wrong primary diagnostic in non-trivial use. With these changes it becomes safe to use reportNote() freely in the migration tool. llvm-svn: 212191
* XFAIL the test to go with r202189Duncan P. N. Exon Smith2014-07-021-0/+1
| | | | llvm-svn: 212190
* AArch64: Temporarily disable AArch64AddressTypePromotionDuncan P. N. Exon Smith2014-07-021-2/+0
| | | | | | | Temporarily disable AArch64AddressTypePromotion, which was effectively re-enabled in r212073 and r212075, while I look into PR20188. llvm-svn: 212189
* [ASan] Print exact source location of global variables in error reports.Alexey Samsonov2014-07-0213-60/+334
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://code.google.com/p/address-sanitizer/issues/detail?id=299 for the original feature request. Introduce llvm.asan.globals metadata, which Clang (or any other frontend) may use to report extra information about global variables to ASan instrumentation pass in the backend. This metadata replaces llvm.asan.dynamically_initialized_globals that was used to detect init-order bugs. llvm.asan.globals contains the following data for each global: 1) source location (file/line/column info); 2) whether it is dynamically initialized; 3) whether it is blacklisted (shouldn't be instrumented). Source location data is then emitted in the binary and can be picked up by ASan runtime in case it needs to print error report involving some global. For example: 0x... is located 4 bytes to the right of global variable 'C::array' defined in '/path/to/file:17:8' (0x...) of size 40 These source locations are printed even if the binary doesn't have any debug info. This is an ABI-breaking change. ASan initialization is renamed to __asan_init_v4(). Pre-built libraries compiled with older Clang will not work with the fresh runtime. llvm-svn: 212188
OpenPOWER on IntegriCloud