- Jun 12, 2015
-
-
John Brawn authored
ARMTargetParser::getFPUFeatures should disable fp16 whenever it disables vfp4, as otherwise something like -mcpu=cortex-a7 -mfpu=none leaves us with fp16 enabled (though the only effect that will have is a wrong build attribute). Differential Revision: http://reviews.llvm.org/D10397 llvm-svn: 239599
-
Yaron Keren authored
llvm-svn: 239598
-
Daniel Jasper authored
Before: case (my_int) ONE: After: case (my_int)ONE: This fixed llvm.org/PR23760 llvm-svn: 239597
-
Yaron Keren authored
llvm-svn: 239596
-
Daniel Jasper authored
llvm-svn: 239595
-
Daniel Jasper authored
by triggering automatic semicolon insertion changes. NFC intended. Patch by Martin Probst. llvm-svn: 239594
-
Daniel Jasper authored
Without it, it would do: interface I { x: string; } var y; llvm-svn: 239593
-
Daniel Jasper authored
statement. When an exported function would follow a class declaration, it would not be recognized as a stand-alone function. That would then collapse the following line with the current one, e.g. class C {} export function f() {} var x; llvm-svn: 239592
-
Nico Weber authored
llvm-svn: 239591
-
Peter Collingbourne authored
It is valid for globals to be unnamed, but aliases must have a name. To avoid creating invalid IR, we need to assign names to any aliases we create that point to unnamed objects that have been moved into combined globals. llvm-svn: 239590
-
https://code.google.com/p/chromium/issues/detail?id=499508#c3Teresa Johnson authored
llvm-svn: 239589
-
Teresa Johnson authored
llvm-svn: 239588
-
Richard Smith authored
llvm-svn: 239587
-
Alexey Samsonov authored
DebugLoc::getFnDebugLoc() should soon be removed. Also, getDISubprogram() might become more effective soon and wouldn't need to scan debug locations at all, if function-level metadata would be emitted by Clang. llvm-svn: 239586
-
Alexey Samsonov authored
Summary: A side effect of this change is that it IRBuilder now automatically created debug info locations for new instructions, which is the same as debug location of insertion point. This is fine for the functions in questions (GetStoreValueForLoad and GetMemInstValueForLoad), as they are used in two situations: * GVN::processLoad, which tries to eliminate a load. In this case new instructions would have the same debug location as the load they eventually replace; * MaterializeAdjustedValue, which adds new instructions to the end of the basic blocks, which could later be used to replace the load definition. In this case we don't yet know the way the load would be eventually replaced (either by assembling the precomputed values via PHI, or by using them directly), so just using the basic block strategy seems to be reasonable. There is also a special case in the code that *would* adjust the location of the last instruction replacing the load definition to the location of the load. Test Plan: regression test suite Reviewers: echristo, dberlin, dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10405 llvm-svn: 239585
-
Alexey Samsonov authored
llvm-svn: 239584
-
Eric Christopher authored
Since we're ignoring the tune= and fpmath= attributes go ahead and add a warning alerting people to the fact that we're going to ignore that part of it during code generation and tie it to the attribute warning set. llvm-svn: 239583
-
Eric Christopher authored
Right now we're ignoring the fpmath attribute since there's no backend support for a feature like this and to do so would require checking the validity of the strings and doing general subtarget feature parsing of valid and invalid features with the target attribute feature. llvm-svn: 239582
-
Eric Christopher authored
-mno- with a -<feature> to match how we handle this in the rest of the frontend. llvm-svn: 239581
-
Eric Christopher authored
We don't currently support the -mtune option in any useful way so ignoring the annotation is fine. llvm-svn: 239580
-
Eric Christopher authored
Modeled after the gcc attribute of the same name, this feature allows source level annotations to correspond to backend code generation. In llvm particular parlance, this allows the adding of subtarget features and changing the cpu for a particular function based on source level hints. This has been added into the existing support for function level attributes without particular verification for any target outside of whether or not the backend will support the features/cpu given (similar to section, etc). llvm-svn: 239579
-
Richard Smith authored
llvm-svn: 239578
-
Eric Fiselier authored
Within the shared state methods do not unlock the lock guards manually. This could cause a race condition where the shared state is destroyed before the method is complete. llvm-svn: 239577
-
David Majnemer authored
llvm-svn: 239576
-
Richard Smith authored
llvm-svn: 239575
-
Reid Kleckner authored
We were putting them in the filter field, which is correct for 64-bit but wrong for 32-bit. Also switch the order of scope table entry emission so outermost entries are emitted first, and fix an obvious state assignment bug. llvm-svn: 239574
-
Sean Silva authored
This is all going through the VFS layer now, so there's nothing platform-specific here. llvm-svn: 239573
-
Tyler Nowicki authored
Specifying #pragma clang loop vectorize(assume_safety) on a loop adds the mem.parallel_loop_access metadata to each load/store operation in the loop. This metadata tells loop access analysis (LAA) to skip memory dependency checking. llvm-svn: 239572
-
NAKAMURA Takumi authored
llvm-svn: 239571
-
Lang Hames authored
Along the same lines as the fix in r228568. llvm-svn: 239570
-
Richard Smith authored
[modules] Fix assert/crash when parsing and merging a definition of a class with a base-specifier inside a namespace. llvm-svn: 239569
-
Juergen Ributzka authored
Remove the EFLAGS from the stackmap live-out mask. The EFLAGS register is not supposed to be part of that set, because the X86 calling conventions mark the register as NOT preserved. Also remove the IP registers, since spilling and restoring those doesn't really make any sense. Related to rdar://problem/21019635. llvm-svn: 239568
-
Reid Kleckner authored
This intrinsic is like framerecover plus a load. It recovers the EH registration stack allocation from the parent frame and loads the exception information field out of it, giving back a pointer to an EXCEPTION_POINTERS struct. It's designed for clang to use in SEH filter expressions instead of accessing the EXCEPTION_POINTERS parameter that is available on x64. This required a minor change to MC to allow defining a label variable to another absolute framerecover label variable. llvm-svn: 239567
-
Reid Kleckner authored
static local initialization isn't thread safe with MSVC and a race was reported in PR23817. We can't use std::atomic because it's not trivially constructible, so instead do some lame volatile global integer manipulation. llvm-svn: 239566
-
Michael Zolotukhin authored
llvm-svn: 239565
-
Lang Hames authored
NFC. llvm-svn: 239564
-
- Jun 11, 2015
-
-
Peter Collingbourne authored
In the case where either a bitcode file and a regular file or two bitcode files export a common or comdat symbol with the same name, the linker needs to pick one of them following COFF semantics. This patch implements a design for resolving such symbols that pushes most of the work onto either LLD's regular mechanism for resolving common or comdat symbols or the IR linker's mechanism for doing the same. We modify SymbolBody::compare to always prefer non-bitcode symbols, so that during the initial phase of symbol resolution, the symbol table always contains a regular symbol in any case where we need to choose between a regular and a bitcode symbol. In SymbolTable::addCombinedLTOObject, we force export any bitcode symbols that were initially pre-empted by a regular symbol, and later use SymbolBody::compare to choose between the regular symbol in the symbol table and the regular symbol from the combined LTO object file. This design seems to be sound, so long as the resolution mechanism is defined to be commutative and associative modulo arbitrary choices between symbols (which seems to be the case for COFF). Differential Revision: http://reviews.llvm.org/D10329 llvm-svn: 239563
-
Marshall Clow authored
llvm-svn: 239562
-
Lang Hames authored
This also breaks out the logical dylib symbol resolution logic. llvm-svn: 239561
-
Peter Collingbourne authored
We cannot prepend __imp_ in the IR mangler because a function reference may be emitted unmangled in a constant initializer. The linker is expected to resolve such references to thunks. This is covered by the new test case. Strictly speaking we ought to emit two undefined symbols, one with __imp_ and one without, as we cannot know which symbol the final object file will refer to. However, this would require rather intrusive changes to IRObjectFile, and lld works fine without it for now. This reimplements r239437, which was reverted in r239502. Differential Revision: http://reviews.llvm.org/D10400 llvm-svn: 239560
-