summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* TableGen: AsmMatcher diagnostic when missing instruction mnemonic.Jim Grosbach2012-05-061-0/+3
| | | | | | | Previously, if an instruction definition was missing the mnemonic, the next line would just assert(). Issue a real diagnostic instead. llvm-svn: 156263
* Put the availability warnings in a group.Rafael Espindola2012-05-063-8/+6
| | | | llvm-svn: 156261
* make SourceMgr tolerate empty SMLoc()'s better.Chris Lattner2012-05-061-45/+54
| | | | llvm-svn: 156260
* Simple typo fix (syntex to syntax). Fixes PR12735Aaron Ballman2012-05-061-2/+2
| | | | llvm-svn: 156259
* Switch the select to branch transformation on by default.Benjamin Kramer2012-05-063-5/+6
| | | | | | | | | The primitive conservative heuristic seems to give a slight overall improvement while not regressing stuff. Make it available to wider testing. If you notice any speed regressions (or significant code size regressions) let me know! llvm-svn: 156258
* Remove trailing spaces.Jakub Staszak2012-05-061-60/+60
| | | | llvm-svn: 156257
* WWW: Adapt the vectorize option change.Hongbin Zheng2012-05-063-6/+6
| | | | llvm-svn: 156256
* Regression tests: Adapt the vectorize option change.Hongbin Zheng2012-05-0615-18/+19
| | | | llvm-svn: 156255
* Allow polly ask bb-vectorizer to vectorize the loop body.Hongbin Zheng2012-05-066-20/+41
| | | | llvm-svn: 156254
* Revert r156142, "[libclang] Bring back ↵NAKAMURA Takumi2012-05-061-6/+0
| | | | | | | | BodyIndexer::TraverseCXXOperatorCallExpr which" It caused test/Index/index-many-call-ops.cpp to fail in stage2 c-index-test on selfhosting i686-cygwin and x86_64-linux since r156229 (Reverting making RecursiveASTVisitor data recursive). llvm-svn: 156253
* Unix/Process.inc: Give more useful random seed to srand. Workaround for PR12743.NAKAMURA Takumi2012-05-061-1/+14
| | | | llvm-svn: 156252
* Support/Process: Move llvm::sys::Process::GetRandomNumber() from Process.cpp ↵NAKAMURA Takumi2012-05-062-10/+9
| | | | | | | to Unix/Process.inc. FIXME: GetRandomNumber() is not implemented in Win32. llvm-svn: 156251
* A conversion operator in a base class shouldn't hide another conversion operatorRichard Smith2012-05-062-2/+15
| | | | | | in the same class, even if they convert to the same type. Fixes PR12712. llvm-svn: 156247
* reapply my patch, with a fix for an off-by-one error. Turned out to be a lotChris Lattner2012-05-052-13/+26
| | | | | | of work for a drive-by fix :) llvm-svn: 156246
* revert my patches, which are causing problems.Chris Lattner2012-05-052-26/+13
| | | | llvm-svn: 156245
* add missing header <shame>Chris Lattner2012-05-051-1/+8
| | | | llvm-svn: 156244
* refactor some code to expose column numbers more and make diagnostic ↵Chris Lattner2012-05-051-12/+18
| | | | | | printing slightly more efficient. llvm-svn: 156243
* Nuke a few dead remnants of the CBE.Jim Grosbach2012-05-055-56/+0
| | | | llvm-svn: 156241
* [Support] Add missing include.Daniel Dunbar2012-05-051-1/+2
| | | | llvm-svn: 156240
* [Support] Fix up comments.Daniel Dunbar2012-05-051-5/+3
| | | | llvm-svn: 156239
* [Support] Rewrite sys::fs::unique_file to not be stupid with /dev/urandom.Daniel Dunbar2012-05-051-19/+5
| | | | | | | | - Just use sys::Process::GetRandomNumber instead of having two poor implementations. - This is ~70 times (!) faster on my OS X machine. llvm-svn: 156238
* [Support] Add sys::Process::GetRandomNumber().Daniel Dunbar2012-05-052-1/+14
| | | | | | - Primitive API, but we rarely have need for random numbers. llvm-svn: 156237
* [build] Add build check for ::arc4random().Daniel Dunbar2012-05-055-2/+10
| | | | llvm-svn: 156236
* Update all outdated autoconf files in the sample project.Benjamin Kramer2012-05-056-456/+586
| | | | | | We might just use symlinks here, but I'm afraid of possible portability issues. llvm-svn: 156235
* CodeGenPrepare: Add a transform to turn selects into branches in some cases.Benjamin Kramer2012-05-052-0/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This came up when a change in block placement formed a cmov and slowed down a hot loop by 50%: ucomisd (%rdi), %xmm0 cmovbel %edx, %esi cmov is a really bad choice in this context because it doesn't get branch prediction. If we emit it as a branch, an out-of-order CPU can do a better job (if the branch is predicted right) and avoid waiting for the slow load+compare instruction to finish. Of course it won't help if the branch is unpredictable, but those are really rare in practice. This patch uses a dumb conservative heuristic, it turns all cmovs that have one use and a direct memory operand into branches. cmovs usually save some code size, so we disable the transform in -Os mode. In-Order architectures are unlikely to benefit as well, those are included in the "predictableSelectIsExpensive" flag. It would be better to reuse branch probability info here, but BPI doesn't support select instructions currently. It would make sense to use the same heuristics as the if-converter pass, which does the opposite direction of this transform. Test suite shows a small improvement here and there on corei7-level machines, but the actual results depend a lot on the used microarchitecture. The transformation is currently disabled by default and available by passing the -enable-cgp-select2branch flag to the code generator. Thanks to Chandler for the initial test case to him and Evan Cheng for providing me with comments and test-suite numbers that were more stable than mine :) llvm-svn: 156234
* Add a new target hook "predictableSelectIsExpensive".Benjamin Kramer2012-05-054-0/+17
| | | | | | | | | | | This will be used to determine whether it's profitable to turn a select into a branch when the branch is likely to be predicted. Currently enabled for everything but Atom on X86 and Cortex-A9 devices on ARM. I'm not entirely happy with the name of this flag, suggestions welcome ;) llvm-svn: 156233
* NVPTX: Initialize the UseF32FTZ flag.Benjamin Kramer2012-05-051-0/+2
| | | | llvm-svn: 156232
* Small fix in InstCombineCasts.cpp. Restored "alloca + bitcast" reducing for ↵Stepan Dyatkovskiy2012-05-052-3/+6
| | | | | | | | case when alloca's size is calculated within the "add/sub/... nsw". Also added fix to 2011-06-13-nsw-alloca.ll test. llvm-svn: 156231
* Jason Molenda convinced me that we should make ctrl-w on the command line ↵Johnny Chen2012-05-051-0/+1
| | | | | | | | bind to ed-delete-prev-word. If you have ctrl-w key binding specified with your .editrc file, it will be overridden with ed-delete-prev-word. :-) llvm-svn: 156230
* Revert r156141 (making RecursiveASTVisitor data recursive). It is causing ↵Ted Kremenek2012-05-051-93/+143
| | | | | | | | | clang to blow up in memory usage on -O2 when compiling itself, which is leading to swapping in some cases when it didn't before. We need to see if we can make this change without leading to a massive compile-time bloat. llvm-svn: 156229
* Use raw_ostream in TypePrinter and eliminate uses of temporary std::strings.Argyrios Kyrtzidis2012-05-059-572/+964
| | | | | | Part of rdar://10796159 llvm-svn: 156228
* Make BuiltinType::getName return a StringRef and introduce ↵Argyrios Kyrtzidis2012-05-055-5/+11
| | | | | | | | | | | | | BuiltinType::getNameAsCString to get a const char* if necessary. This avoids unnecessary conversions when we want to use the result of getName as a StringRef. Part of rdar://10796159 llvm-svn: 156227
* Typo.Eric Christopher2012-05-051-1/+1
| | | | llvm-svn: 156226
* Missed a few uses of Mutex::GetMutex in template functions that don't seem ↵Jim Ingham2012-05-041-3/+3
| | | | | | | | to get instantiated on the Mac OS X build, but were causing build failures on Linux. llvm-svn: 156224
* Added an "attach" alias as promised on the web page.Sean Callanan2012-05-041-0/+6
| | | | llvm-svn: 156223
* Order register classes by spill size first, members last.Jakob Stoklund Olesen2012-05-041-7/+7
| | | | | | | | | | | | This is still a topological ordering such that every register class gets a smaller enum value than its sub-classes. Placing the smaller spill sizes first makes a difference for the super-register class bit masks. When looking for a super-register class, we usually want the smallest possible kind of super-register. That is now available as the first bit set in the bit mask. llvm-svn: 156222
* Don't expose the pthread_mutex_t underlying the Mutex & Mutex::Locker classes. Jim Ingham2012-05-0417-72/+74
| | | | | | | | | | | | | No one was using it and Locker(pthread_mutex_t *) immediately asserts for pthread_mutex_t's that don't come from a Mutex anyway. Rather than try to make that work, we should maintain the Mutex abstraction and not pass around the platform implementation... Make Mutex::Locker::Lock take a Mutex & or a Mutex *, and remove the constructor taking a pthread_mutex_t *. You no longer need to call Mutex::GetMutex to pass your mutex to a Locker (you can't in fact, since I made it private.) llvm-svn: 156221
* Make sure findRepresentativeClass picks the widest super-register.Jakob Stoklund Olesen2012-05-041-6/+10
| | | | | | | | We want the representative register class to contain the largest super-registers available. This makes the function less sensitive to the register class numbering. llvm-svn: 156220
* Remove extra comma in debug output.Jakob Stoklund Olesen2012-05-041-1/+1
| | | | llvm-svn: 156219
* Move Sema::VerifyIntegerConstantExpression() andDouglas Gregor2012-05-0412-116/+397
| | | | | | | | Sema::ConvertToIntegralOrEnumerationType() from PartialDiagnostics to abstract "diagnoser" classes. Not much of a win here, but we're -several PartialDiagnostics. llvm-svn: 156217
* Fix warnings in release build.David Blaikie2012-05-042-1/+2
| | | | | | | | | This fixes a couple of Clang warnings in release builds of LLVM: * Missing return in ISelLowering * Unused variable in NVPTXutil.cpp llvm-svn: 156216
* [analyzer] RetainCountChecker: Allow objects to escape through callbacksAnna Zaks2012-05-042-8/+46
| | | | | | Fixes radar://10973977. llvm-svn: 156215
* [analyzer] One more pointer escape test.Anna Zaks2012-05-041-0/+11
| | | | llvm-svn: 156214
* Tweak to the fix in r156212, as with the change in removing the shift theKevin Enderby2012-05-041-1/+1
| | | | | | SignExtend32<22>(Val<<1) also needs to change to SignExtend32<21>(Val) . llvm-svn: 156213
* Fix a bug in the ARM disassembler for wide branch conditional instructionsKevin Enderby2012-05-041-1/+1
| | | | | | | where the symbolic operand's displacement was incorrectly shifted left by 1. rdar://11387046 llvm-svn: 156212
* Explicitly model capturing variables for blocks in the static analyzer. ↵Ted Kremenek2012-05-045-13/+104
| | | | | | Fixes <rdar://problem/11125868>. llvm-svn: 156211
* fix typoSebastian Pop2012-05-041-1/+1
| | | | llvm-svn: 156210
* Fix a Clang warning in the new NVPTX backend:Chandler Carruth2012-05-041-1/+1
| | | | | | | | | | | | | | In file included from ../lib/Target/NVPTX/VectorElementize.cpp:53: ../lib/Target/NVPTX/NVPTX.h:44:3: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default] default: assert(0 && "Unknown condition code"); ^ 1 warning generated. The prevailing pattern in LLVM is to not use a default label, and instead to use llvm_unreachable to denote that the switch in fact covers all return paths from the function. llvm-svn: 156209
* Teach the code extractor how to extract a sequence of blocks fromChandler Carruth2012-05-042-7/+40
| | | | | | | RegionInfo's RegionNode. This mirrors the logic for automating the extraction from a Loop. llvm-svn: 156208
* Try to fix the Polly build while I'm trying to get it to build at all locally.Chandler Carruth2012-05-041-1/+1
| | | | llvm-svn: 156207
OpenPOWER on IntegriCloud