2f40830dde 
								
							 
						 
						
							
							
								
								[opaque pointer type] Add textual IR support for explicit type parameter for global aliases  
							
							... 
							
							
							
							update.py:
import fileinput
import sys
import re
alias_match_prefix = r"(.*(?:=|:|^)\s*(?:external |)(?:(?:private|internal|linkonce|linkonce_odr|weak|weak_odr|common|appending|extern_weak|available_externally) )?(?:default |hidden |protected )?(?:dllimport |dllexport )?(?:unnamed_addr |)(?:thread_local(?:\([a-z]*\))? )?alias"
plain = re.compile(alias_match_prefix + r" (.*?))(| addrspace\(\d+\) *)\*($| *(?:%|@|null|undef|blockaddress|addrspacecast|\[\[[a-zA-Z]|\{\{).*$)")
cast  = re.compile(alias_match_prefix + r") ((?:bitcast|inttoptr|addrspacecast)\s*\(.* to (.*?)(| addrspace\(\d+\) *)\*\)\s*(?:;.*)?$)")
gep   = re.compile(alias_match_prefix + r") ((?:getelementptr)\s*(?:inbounds)?\s*\((?P<type>.*), (?P=type)(?:\s*addrspace\(\d+\)\s*)?\* .*\)\s*(?:;.*)?$)")
def conv(line):
  m = re.match(cast, line)
  if m:
    return m.group(1) + " " + m.group(3) + ", " + m.group(2)
  m = re.match(gep, line)
  if m:
    return m.group(1) + " " + m.group(3) + ", " + m.group(2)
  m = re.match(plain, line)
  if m:
    return m.group(1) + ", " + m.group(2) + m.group(3) + "*" + m.group(4) + "\n"
  return line
for line in sys.stdin:
  sys.stdout.write(conv(line))
apply.sh:
for name in "$@"
do
  python3 `dirname "$0"`/update.py < "$name" > "$name.tmp" && mv "$name.tmp" "$name"
  rm -f "$name.tmp"
done
The actual commands:
From llvm/src:
find test/ -name *.ll | xargs ./apply.sh
From llvm/src/tools/clang:
find test/ -name *.mm -o -name *.m -o -name *.cpp -o -name *.c | xargs -I '{}' ../../apply.sh "{}"
From llvm/src/tools/polly:
find test/ -name *.ll | xargs ./apply.sh
llvm-svn: 247378 
							
						 
						
							2015-09-11 03:22:04 +00:00  
				
					
						
							
							
								 
						
							
								59f7eba2b5 
								
							 
						 
						
							
							
								
								[pr19844] Add thread local mode to aliases.  
							
							... 
							
							
							
							This matches gcc's behavior. It also seems natural given that aliases
contain other properties that govern how it is accessed (linkage,
visibility, dll storage).
Clang still has to be updated to expose this feature to C.
llvm-svn: 209759 
							
						 
						
							2014-05-28 18:15:43 +00:00  
				
					
						
							
							
								 
						
							
								a5bb2f61cf 
								
							 
						 
						
							
							
								
								Use alias linkage and visibility to decide tls access mode.  
							
							... 
							
							
							
							This matches both what we do for the non-thread case and what gcc does.
With this patch clang would match gcc's behaviour in
static __thread int a = 42;
extern __thread int b __attribute__((alias("a")));
int *f(void) { return &a; }
int *g(void) { return &b; }
if not for pr19843. Manually writing the IL does produce the same access modes.
It is also a step in the direction of fixing pr19844.
llvm-svn: 209543 
							
						 
						
							2014-05-23 19:16:56 +00:00  
				
					
						
							
							
								 
						
							
								66bc419366 
								
							 
						 
						
							
							
								
								[mips] Implement MipsTargetMachine::getInstrItineraryData().  
							
							... 
							
							
							
							llvm-svn: 186227 
							
						 
						
							2013-07-12 23:33:22 +00:00  
				
					
						
							
							
								 
						
							
								9d957842e1 
								
							 
						 
						
							
							
								
								Add option disable-mips-delay-filler. Turn on mips' delay slot filler by  
							
							... 
							
							
							
							default.
Patch by Carl Norum.
llvm-svn: 162339 
							
						 
						
							2012-08-22 02:51:28 +00:00  
				
					
						
							
							
								 
						
							
								a3088f09b3 
								
							 
						 
						
							
							
								
								Handle aliases to tls variables in all architectures, not just x86.  
							
							... 
							
							
							
							llvm-svn: 159058 
							
						 
						
							2012-06-23 00:30:03 +00:00