summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* in addition to merging, constantmerge should also delete trivially dead globals,Chris Lattner2007-04-141-1/+8
| | | | | | in order to clean up after simplifylibcalls. llvm-svn: 35982
* Implement PR1201 and test/Transforms/InstCombine/malloc-free-delete.llChris Lattner2007-04-141-8/+23
| | | | llvm-svn: 35981
* testcase for PR1201Chris Lattner2007-04-141-0/+12
| | | | llvm-svn: 35980
* use an accessor to simplify code.Chris Lattner2007-04-141-15/+1
| | | | llvm-svn: 35979
* add GetElementPtrInst::hasAllZeroIndices, a long-overdue helper method.Chris Lattner2007-04-142-0/+21
| | | | | | Writing it twice in the same day was too much for me. llvm-svn: 35978
* We want the number of bits needed, not the power of 2.Reid Spencer2007-04-141-1/+1
| | | | llvm-svn: 35977
* tests for struct/union as input operands to asm.Dale Johannesen2007-04-132-0/+16
| | | | llvm-svn: 35976
* Silence VC++ warning.Jeff Cohen2007-04-131-1/+1
| | | | llvm-svn: 35975
* Add the SCCP regression tests for APInt expressions. These test casesReid Spencer2007-04-1315-0/+360
| | | | | | | | | turned up some regressions that have since been fixed. We don't want to loose the regression tests. Test cases by Guoling Han. llvm-svn: 35974
* xfail this for nowChris Lattner2007-04-131-0/+3
| | | | llvm-svn: 35973
* Now that codegen prepare isn't defeating me, I can finally fix what I setChris Lattner2007-04-131-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | out to do! :) This fixes a problem where LSR would insert a bunch of code into each MBB that uses a particular subexpression (e.g. IV+base+C). The problem is that this code cannot be CSE'd back together if inserted into different blocks. This patch changes LSR to attempt to insert a single copy of this code and share it, allowing codegenprepare to duplicate the code if it can be sunk into various addressing modes. On CodeGen/ARM/lsr-code-insertion.ll, for example, this gives us code like: add r8, r0, r5 str r6, [r8, #+4] .. ble LBB1_4 @cond_next LBB1_3: @cond_true str r10, [r8, #+4] LBB1_4: @cond_next ... LBB1_5: @cond_true55 ldr r6, LCPI1_1 str r6, [r8, #+4] instead of: add r10, r0, r6 str r8, [r10, #+4] ... ble LBB1_4 @cond_next LBB1_3: @cond_true add r8, r0, r6 str r10, [r8, #+4] LBB1_4: @cond_next ... LBB1_5: @cond_true55 add r8, r0, r6 ldr r10, LCPI1_1 str r10, [r8, #+4] Besides being smaller and more efficient, this makes it immediately obvious that it is profitable to predicate LBB1_3 now :) llvm-svn: 35972
* new lsr testcaseChris Lattner2007-04-131-0/+60
| | | | llvm-svn: 35971
* Completely rewrite addressing-mode related sinking of code. In particular,Chris Lattner2007-04-131-341/+542
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this fixes problems where codegenprepare would sink expressions into load/stores that are not valid, and fixes cases where it would miss important valid ones. This fixes several serious codesize and perf issues, particularly on targets with complex addressing modes like arm and x86. For example, now we compile CodeGen/X86/isel-sink.ll to: _test: movl 8(%esp), %eax movl 4(%esp), %ecx cmpl $1233, %eax ja LBB1_2 #F LBB1_1: #T movl $4, (%ecx,%eax,4) movl $141, %eax ret LBB1_2: #F movl (%ecx,%eax,4), %eax ret instead of: _test: movl 8(%esp), %eax leal (,%eax,4), %ecx addl 4(%esp), %ecx cmpl $1233, %eax ja LBB1_2 #F LBB1_1: #T movl $4, (%ecx) movl $141, %eax ret LBB1_2: #F movl (%ecx), %eax ret llvm-svn: 35970
* New testcaseChris Lattner2007-04-131-0/+17
| | | | llvm-svn: 35969
* Implement a getBitsNeeded method to determine how many bits are needed toReid Spencer2007-04-132-0/+43
| | | | | | represent a string in binary form by an APInt. llvm-svn: 35968
* Remove use of SlowOperationInformer.Devang Patel2007-04-131-3/+0
| | | | llvm-svn: 35967
* Undo previous check-in.Devang Patel2007-04-131-1/+1
| | | | llvm-svn: 35966
* Hello uses LLVMSupport.a (SlowerOperationInformer)Devang Patel2007-04-131-1/+1
| | | | llvm-svn: 35965
* Rename Value::getValueType to getValueID, to avoid confusion withDan Gohman2007-04-1311-33/+33
| | | | | | other things named getValueType. llvm-svn: 35964
* Fix PR1323 : we haven't updated phi nodes in good manner :)Anton Korobeynikov2007-04-132-0/+28
| | | | llvm-svn: 35963
* arm has r+r*s and r+i addr modes, but no r+i+r*s addr modes.Chris Lattner2007-04-131-1/+5
| | | | llvm-svn: 35962
* Make the apint construction more effective.Zhou Sheng2007-04-131-3/+3
| | | | llvm-svn: 35960
* CSE simple binary expressions when they are inserted. This makes LSR produceChris Lattner2007-04-132-9/+32
| | | | | | less huge code that needs to be cleaned up by sdisel. llvm-svn: 35959
* Adding target triplet to be passed to database.Tanya Lattner2007-04-131-1/+18
| | | | llvm-svn: 35958
* Implement review feedback .. don't double search a set.Reid Spencer2007-04-121-3/+1
| | | | llvm-svn: 35957
* Make sure intrinsics that are lowered to functions make the function weakReid Spencer2007-04-121-2/+2
| | | | | | | linkage so we only end up with one of them in a program. These are, after all overloaded and templatish in nature. llvm-svn: 35956
* testcases for function linkageDale Johannesen2007-04-124-1/+111
| | | | llvm-svn: 35955
* Provide support for intrinsics that lower themselves to a function body.Reid Spencer2007-04-121-2/+32
| | | | | | | | This can happen for intrinsics that are overloaded. In such cases it is necessary to emit a function prototype before the body of the function that calls the intrinsic and to ensure we don't emit it multiple times. llvm-svn: 35954
* update documentationLauro Ramos Venancio2007-04-121-2/+4
| | | | llvm-svn: 35953
* update documentationLauro Ramos Venancio2007-04-121-1/+5
| | | | llvm-svn: 35952
* Implement Thread Local Storage (TLS) in CBackend.Lauro Ramos Venancio2007-04-121-17/+27
| | | | llvm-svn: 35951
* Implement the "thread_local" keyword.Lauro Ramos Venancio2007-04-1217-3660/+4051
| | | | llvm-svn: 35950
* vector compares aren't allowed. It doesn't make sense to have an xfailedChris Lattner2007-04-121-57/+0
| | | | | | test to remind us of this. llvm-svn: 35949
* make this really work on linux :)Chris Lattner2007-04-121-1/+1
| | | | llvm-svn: 35948
* make this happier on linux hostsChris Lattner2007-04-121-1/+1
| | | | llvm-svn: 35947
* Fix bugs in generated code for part_select and part_set so that llc doesn'tReid Spencer2007-04-121-35/+44
| | | | | | barf when CBE is run with a program that contains these intrinsics. llvm-svn: 35946
* Fix a bug in PartSet. The replacement value needs to be zext or trunc toReid Spencer2007-04-121-3/+7
| | | | | | the size of the value, not just zext. Also, give better names to two BBs. llvm-svn: 35945
* the result of an inline asm copy can be an arbitrary VT that the registerChris Lattner2007-04-121-4/+21
| | | | | | | | class supports. In the case of vectors, this means we often get the wrong type (e.g. we get v4f32 instead of v8i16). Make sure to convert the vector result to the right type. This fixes CodeGen/X86/2007-04-11-InlineAsmVectorResult.ll llvm-svn: 35944
* fold noop vbitconvert instructionsChris Lattner2007-04-121-0/+9
| | | | llvm-svn: 35943
* new testcaseChris Lattner2007-04-121-0/+21
| | | | llvm-svn: 35942
* Fix weirdness handling single element vectors.Chris Lattner2007-04-121-5/+2
| | | | llvm-svn: 35941
* Fix mmx paddq, add support for the 'y' register class, though it isn't tested.Chris Lattner2007-04-121-1/+5
| | | | llvm-svn: 35940
* Make the shlibext and llvmlibsdir variables accessible.Reid Spencer2007-04-122-1/+6
| | | | llvm-svn: 35939
* For PR1284:Reid Spencer2007-04-124-16/+207
| | | | | | Implement the "part_set" intrinsic. llvm-svn: 35938
* The hello pass actually requires a function to chew on!Reid Spencer2007-04-121-0/+5
| | | | llvm-svn: 35937
* Fix extra argument in part_set examples. Thanks Zhiru.Reid Spencer2007-04-121-4/+4
| | | | llvm-svn: 35936
* improve the patch for PR1318 to also support grouped options with customChris Lattner2007-04-122-7/+17
| | | | | | | | | handlers (like the pass list). My previous fix only supported *new* command line options, not additions to old ones. This fixes test/Feature/load_module.ll llvm-svn: 35935
* New test case for PR 1321.Devang Patel2007-04-121-0/+12
| | | | llvm-svn: 35934
* Fix validation errors.Reid Spencer2007-04-111-8/+8
| | | | llvm-svn: 35933
* Missing end tag. Thanks, Nick.Reid Spencer2007-04-111-1/+1
| | | | llvm-svn: 35932
OpenPOWER on IntegriCloud