summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use default lowering of DYNAMIC_STACKALLOC. As far as I can tell, ARM isle ↵Evan Cheng2010-04-153-70/+9
| | | | | | is doing the right thing and codegen looks correct for both Thumb and Thumb2. llvm-svn: 101410
* tidy interface to isOnlyCopiedFromConstantGlobalChris Lattner2010-04-151-15/+14
| | | | llvm-svn: 101405
* Don't use absolute path for EXPORTED_SYMBOL_FILE, this breaks under the newDaniel Dunbar2010-04-151-1/+1
| | | | | | system. llvm-svn: 101404
* Better support USRs for anonymous enums, structs, by including the location ↵Ted Kremenek2010-04-151-3/+42
| | | | | | | | where the tag was declared. WIP. llvm-svn: 101403
* Specify temporary file for -emit-llvm output in test case so that we don't ↵Ted Kremenek2010-04-151-1/+1
| | | | | | | | deposit the file in the original source directory. llvm-svn: 101402
* Do not generate USRs for declarations with 'no linkage' except for enums, ↵Ted Kremenek2010-04-151-7/+28
| | | | | | | | structs, typedefs. Those still need work to disambiguate them across translation units. llvm-svn: 101401
* Generalize the EXPORTED_SYMBOL_FILE concept in the Makefiles to work withDan Gohman2010-04-155-62/+98
| | | | | | | | | | native linking export files, including running sed to prepend underscores on darwin, and make use of it in libLTO and libEnhancedDisassembly. Remove the leading underscores from library export files so that they work with the new EXPORTED_SYMBOL_FILE support. llvm-svn: 101399
* zap mergeinfoGabor Greif2010-04-150-0/+0
| | | | llvm-svn: 101398
* reapply r101364, which has been backed out in r101368Gabor Greif2010-04-1543-587/+578
| | | | | | | | | | | | | with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
* add include of int_lib.h to match change to use compilerrt_abort()Nick Kledzik2010-04-152-0/+4
| | | | llvm-svn: 101396
* Pointed out by housel on #llvm.Duncan Sands2010-04-151-1/+1
| | | | llvm-svn: 101395
* Fix PR6847. RegScavenger should ignore DebugValues.Jakob Stoklund Olesen2010-04-152-0/+29
| | | | llvm-svn: 101392
* Make sure the initialization of a GC root is after its definition.Nicolas Geoffray2010-04-151-3/+4
| | | | llvm-svn: 101388
* Revert r100896 and around - this breaks the only mingw32 buildbot we have.Anton Korobeynikov2010-04-153-9/+3
| | | | llvm-svn: 101387
* prune includesGabor Greif2010-04-151-2/+0
| | | | llvm-svn: 101385
* Improve the bit-field too wide error message.Anders Carlsson2010-04-154-7/+7
| | | | llvm-svn: 101384
* ARM SelectDYN_ALLOC should emit a copy from SP rather than referencing SP ↵Evan Cheng2010-04-152-1/+24
| | | | | | | | directly. In cases where there are two dyn_alloc in the same BB it would have caused the old SP value to be reused and badness ensues. rdar://7493908 llvm is generating poor code for dynamic alloca, I'll fix that later. llvm-svn: 101383
* DEBUG() print out "Unknown format" msg.Johnny Chen2010-04-151-1/+3
| | | | llvm-svn: 101382
* Diagnose attempts to throw an abstract class type.Douglas Gregor2010-04-153-0/+17
| | | | llvm-svn: 101381
* ReuseFrameIndexVals is used in multiple files, so it can't be static.Dan Gohman2010-04-152-3/+9
| | | | llvm-svn: 101379
* Fix PR 6844, a regression caused by the introduction of llvm_unreachable for ↵Ted Kremenek2010-04-152-25/+71
| | | | | | | | | | the default case in GRExprEngine::Visit (in r101129). Instead, enumerate all Stmt cases and have no 'default' case in the switch statement. When we encounter a Stmt we don't handle, we should explicitly add it to the switch statement. llvm-svn: 101378
* EnablePPC64RS and EnablePPC32RS are used in multiple files, so theyDan Gohman2010-04-152-4/+11
| | | | | | can't be static. llvm-svn: 101377
* Fix a bunch of namespace polution.Dan Gohman2010-04-1515-24/+54
| | | | llvm-svn: 101376
* Fix namespace polution.Dan Gohman2010-04-151-0/+4
| | | | llvm-svn: 101375
* Make getPredecessorWithUniqueSuccessorForBB return the unique successorDan Gohman2010-04-152-13/+12
| | | | | | in addition to the predecessor. llvm-svn: 101374
* Split adding the primary virtual base offsets out into a separate pass. This ↵Anders Carlsson2010-04-153-35/+158
| | | | | | fixes a bug where we would lay out virtual bases in the wrong order. llvm-svn: 101373
* Fix a few cases where enum constant handling was usingDouglas Gregor2010-04-152-6/+10
| | | | | | | | | | ASTContext::getTypeSize() rather than ASTContext::getIntWidth() for the width of an integral type. The former includes padding for bools (to the target's size) while the latter does not, so we woud end up zero-extending bools to the target width when we shouldn't. Fixes a crash-on-valid in the included test. llvm-svn: 101372
* typosGabor Greif2010-04-151-2/+2
| | | | llvm-svn: 101371
* clang -cc1: Add a -fno-bitfield-type-align option, for my own testing purposes.Daniel Dunbar2010-04-154-2/+19
| | | | llvm-svn: 101370
* Tweak spelling (Bitfield -> BitField)Daniel Dunbar2010-04-153-5/+5
| | | | llvm-svn: 101369
* back out r101364, as it trips the linux nightlybot on some clang C++ testsGabor Greif2010-04-1543-578/+587
| | | | llvm-svn: 101368
* zap mergeinfoGabor Greif2010-04-150-0/+0
| | | | llvm-svn: 101366
* Simplify ".bc" detection.Benjamin Kramer2010-04-151-2/+1
| | | | llvm-svn: 101365
* rotate CallInst operands, i.e. move callee to the backGabor Greif2010-04-1543-587/+578
| | | | | | | | | | of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
* Teach -fixit to modify all of its inputs instead of just the main file, unlessNick Lewycky2010-04-157-44/+117
| | | | | | -fixit-at specified a particular fixit to fix, or the -o flag was used. llvm-svn: 101359
* Include sender address in completion log.Ted Kremenek2010-04-151-0/+2
| | | | llvm-svn: 101358
* Tidy up comment.Daniel Dunbar2010-04-151-4/+3
| | | | llvm-svn: 101357
* Add TargetInfo::useBitfieldTypeAlignment().Daniel Dunbar2010-04-153-7/+18
| | | | | | | | | | | | | | | - Used to determine whether the alignment of the type in a bit-field is respected when laying out structures. The default is true, targets can override this as needed. - This is designed to correspond to the PCC_BITFIELD_TYPE_MATTERS macro in gcc. The AST/Sema implementation only affects one line, unless I have forgotten something. I'd appreciate further review. - IRgen still needs to be updated to fully support this (which is effectively PR5591). llvm-svn: 101356
* enhance the load/store narrowing optimization to handle aChris Lattner2010-04-152-5/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | tokenfactor in between the load/store. This allows us to optimize test7 into: _test7: ## @test7 ## BB#0: ## %entry movl (%rdx), %eax ## kill: SIL<def> ESI<kill> movb %sil, 5(%rdi) ret instead of: _test7: ## @test7 ## BB#0: ## %entry movl 4(%esp), %ecx movl $-65281, %eax ## imm = 0xFFFFFFFFFFFF00FF andl 4(%ecx), %eax movzbl 8(%esp), %edx shll $8, %edx addl %eax, %edx movl 12(%esp), %eax movl (%eax), %eax movl %edx, 4(%ecx) ret llvm-svn: 101355
* Driver/Frontend: Add support for -mllvm, which forwards options to the LLVM ↵Daniel Dunbar2010-04-155-1/+38
| | | | | | | | option parser. - Note that this is a behavior change, previously -mllvm at the driver level forwarded to clang -cc1. The driver does a little magic to make sure that '-mllvm -disable-llvm-optzns' works correctly, but other users will need to be updated to use -Xclang. llvm-svn: 101354
* teach codegen to turn trunc(zextload) into load when possible.Chris Lattner2010-04-152-14/+40
| | | | | | | | This doesn't occur much at all, it only seems to formed in the case when the trunc optimization kicks in due to phase ordering. In that case it is saves a few bytes on x86-32. llvm-svn: 101350
* add a simple dag combine to replace trivial shl+lshr withChris Lattner2010-04-152-1/+10
| | | | | | and. This happens with the store->load narrowing stuff. llvm-svn: 101348
* IRgen: Change CGBitFieldInfo to take the AccessInfo as constructor ↵Daniel Dunbar2010-04-153-20/+38
| | | | | | | | arguments, it is now an immutable object. Also, add some checking of various invariants that should hold on the CGBitFieldInfo access. llvm-svn: 101345
* IRgen: Eliminate now unused fields from CGBitFieldInfo.Daniel Dunbar2010-04-153-22/+15
| | | | llvm-svn: 101344
* Implement rdar://7860110 (also in target/readme.txt) narrowingChris Lattner2010-04-153-35/+245
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a load/or/and/store sequence into a narrower store when it is safe. Daniel tells me that clang will start producing this sort of thing with bitfields, and this does trigger a few dozen times on 176.gcc produced by llvm-gcc even now. This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll into: movl %eax, 36(%rdi) instead of: movl $4294967295, %eax ## imm = 0xFFFFFFFF andq 32(%rdi), %rax shlq $32, %rcx addq %rax, %rcx movq %rcx, 32(%rdi) and each of the testcases into a single store. Each of them used to compile into craziness like this: _test4: movl $65535, %eax ## imm = 0xFFFF andl (%rdi), %eax shll $16, %esi addl %eax, %esi movl %esi, (%rdi) ret llvm-svn: 101343
* Add more const qualifiers for LLVM IR pointers in CodeGen.Dan Gohman2010-04-159-28/+30
| | | | llvm-svn: 101342
* further tweak this to do something useful.Chris Lattner2010-04-151-6/+4
| | | | llvm-svn: 101341
* remove undef control flow.Chris Lattner2010-04-151-22/+1
| | | | llvm-svn: 101340
* IRgen: (Reapply 101222, with fixes) Move EmitStoreThroughBitfieldLValue to ↵Daniel Dunbar2010-04-152-88/+291
| | | | | | | | | | | | | | | | use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself. - Sadly, this doesn't seem to give any .ll size win so far. It is possible to make this routine significantly smarter & avoid various shifting, masking, and zext/sext, but I'm not really convinced it is worth it. It is tricky, and this is really instcombine's job. - No intended functionality change; the test case is just to increase coverage & serves as a demo file, it worked before this commit. The new fixes from r101222 are: 1. The shift to the target position needs to occur after the value is extended to the correct size. This broke Clang bootstrap, among other things no doubt. 2. Swap the order of arguments to OR, to get a tad more constant folding. llvm-svn: 101339
* Remove unnecessary uses of <iostream>.Daniel Dunbar2010-04-153-7/+5
| | | | llvm-svn: 101338
OpenPOWER on IntegriCloud